How to convert two dimensional array to one dimensional array in php?

前端 未结 6 1035
太阳男子
太阳男子 2021-02-01 11:17

I am Having an mutidimensional array getting result like given below

Array
(
    [0] => Array
        (
            [0] => 70
        )

    [1] => Arra         


        
相关标签:
6条回答
  • 2021-02-01 11:50

    Try with:

    $input  = array(/* your array*/);
    $output = array();
    
    foreach ( $input as $data ) {
      $output = array_merge($output, $data);
    }
    
    0 讨论(0)
  • 2021-02-01 11:51

    You can try

    $it =  new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
    $l = iterator_to_array($it, false);
    
    var_dump($l); // one Dimensional 
    
    0 讨论(0)
  • 2021-02-01 11:56

    By using this function you can convert any dimension array into a single dimention array.

    $result = array();
    $data = mearchIntoarray($result,$array);
    function mearchIntoarray($result,$now)
    {
        global $result;
        foreach($now as $key=>$val)
        {
            if(is_array($val))
            {
                mearchIntoarray($result,$val);
            }
            else
            {
                $result[] = $val;
            }
        }
        return $result;
    } 
    

    Where $array is your given array value.

    0 讨论(0)
  • 2021-02-01 11:57

    You can use array_walk_recursive() for that coupled with a closure:

    $res = array(); // initialize result
    
    // apply closure to all items in $data
    array_walk_recursive($data, function($item) use (&$res) {
        // flatten the array
        $res[] = $item;
    });
    
    print_r($res); // print one-dimensional array
    
    0 讨论(0)
  • 2021-02-01 11:59

    For a more generic function which can deal with multidimensional arrays, check this function,

    function  arrayFlattener($input = array(), &$output = array()) {
      foreach($input as $value) {
        if(is_array($value)) {
            arrayFlattener($value, $output);
        } else {
            $output[] = $value;
        }
      }
    }
    

    You can find an example here.

    0 讨论(0)
  • 2021-02-01 12:09

    This should do the trick

    $final = array();
    foreach ($outer as $inner) {
      $final = array_merge($final, $inner);
    }
    var_dump($final);
    

    Or you could use array_reduce() if you have PHP >= 5.3

    $final = array_reduce($outer, function($_, $inner){
      return $_ = array_merge((array)$_, $inner);
    });
    var_dump($final);
    
    0 讨论(0)
提交回复
热议问题