如何从关联数组中获取值数组?

Rac*_*hel 6 php

如何从关联数组中获取值数组?

关联数组示例:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )
    [2] => Array
        (
            [0] => 7
        )
)
Run Code Online (Sandbox Code Playgroud)

期望的输出

Array
(1,2,3,4,5,6,7)
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 8

不确定它是否适合你,因为它只是PHP> = 5.3,但这是一个可能的解决方案,使用array_walk_recursive和闭包 (参见匿名函数):

$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);
Run Code Online (Sandbox Code Playgroud)

结果如下:

array
  0 => int 1
  1 => int 2
  2 => int 3
  3 => int 4
  4 => int 5
  5 => int 6
  6 => int 7
Run Code Online (Sandbox Code Playgroud)

基本上,闭包是我使用它的唯一方法:它用于$result通过引用将变量导入匿名函数.



并且,只是为了发布它,我唯一得到这个适用于PHP 5.2 (即不使用闭包)是这样的:

$result = array();
array_walk_recursive($array, 'my_func', & $result);
var_dump($result);

function my_func($value, $key, & $result) {
    $result[] = $value;
}
Run Code Online (Sandbox Code Playgroud)

哪个也有效 - 但会发出警告:

Deprecated: Call-time pass-by-reference has been deprecated
Run Code Online (Sandbox Code Playgroud)

不幸的是,我没有找到一种方法让这个工作没有通过$result参考在呼叫时间:-
((也许别人有一个想法,关于如何做到这一点?)