How to get array of values from an associative arrays?

前端 未结 4 1707
感情败类
感情败类 2020-12-19 07:51

How can I get an array of values from an associative array ?

Associate array Example:

Array
(
    [0] => Array
        (
            [0] => 1
          


        
4条回答
  •  甜味超标
    2020-12-19 08:30

    Not sure it'll suit you, as it's PHP >= 5.3 only, but here's a possible solution, using array_walk_recursive and a closure (see Anonymous functions) :

    $array = array(
        array(1, 2, 3), 
        array(4, 5, 6), 
        array(7), 
    );
    
    $result = array();
    array_walk_recursive($array, function ($value, $key) use (& $result) {
        $result[] = $value;
    });
    var_dump($result);
    

    And the result :

    array
      0 => int 1
      1 => int 2
      2 => int 3
      3 => int 4
      4 => int 5
      5 => int 6
      6 => int 7
    

    Basicaly, the closure is the only way I got this to work : it's used to import the $result variable, by reference, into the anonymous function.



    And, just to post it, the only I got this working for PHP 5.2 (i.e. not using a closure) is with this :

    $result = array();
    array_walk_recursive($array, 'my_func', & $result);
    var_dump($result);
    
    function my_func($value, $key, & $result) {
        $result[] = $value;
    }
    

    Which works too -- but raises a warning :

    Deprecated: Call-time pass-by-reference has been deprecated
    

    Unfortunatly, I didn't find a way of getting this to work without passing $result by reference at call-time :-(
    (Maybe someone else has an idea, about how to do that ?)

提交回复
热议问题