PHP explode and assign it to a multi-dimensional array

前端 未结 6 2007
天命终不由人
天命终不由人 2021-01-19 17:11

i want to explode a string two time and make a multi-dimensional array.

$data = \"i love funny movies \\n i love stackoverflow dot com \\n i like rock song\"         


        
6条回答
  •  無奈伤痛
    2021-01-19 17:35

    Do it:

    $data = "i love funny movies \n i love stackoverflow dot com \n i like rock song";
    $data = explode(" \n ", $data);
    
    $out = array();
    $step = 0;
    $last = count($data);
    $last--;
    
    foreach($data as $key=>$item){
    
       foreach(explode(' ',$item) as $value){
        $out[$key][$step++] = $value;
       }
    
       if ($key!=$last){
        $out[$key][$step++] = ' '; // not inserting last "space"
       }
    
    }
    
    print '
    ';
    print_r($out);
    print '
    ';

    OUTPUT (what you need):

    Array
    (
      [0] => Array
        (
            [0] => i
            [1] => love
            [2] => funny
            [3] => movies
            [4] =>  
        )
    
    [1] => Array
        (
            [5] => i
            [6] => love
            [7] => stackoverflow
            [8] => dot
            [9] => com
            [10] =>  
        )
    
    [2] => Array
        (
            [11] => i
            [12] => like
            [13] => rock
            [14] => song
        )
    
    )
    

提交回复
热议问题