array_walk 没有帮我散步

array_walk not doing the walk for me

当我将数组作为额外参数传递给 array walk 时,它没有像我预期的那样得到解释。

function boom($item, $z )
{
    print_r("\n".$item);
    print_r("\n".$z);
}

$z=[ "alpha", "bravo" ];
$x=[ "one", "two" ];
array_walk( $x, 'boom', $z );

输出:

one
0 
two 
1

为什么要打印零和一? 为什么我不打印 alpha 和 bravo?如何在输出中包含 alpha 和 bravo?

谢谢!

您必须更改代码以将 $z 作为第三个参数传递,如下所示:

function boom($item, $i, $z )
{
    print_r("\n".$item);
    print_r("\n".$z[$i]);
}

$z=[ "alpha", "bravo" ];
$x=[ "one", "two" ];
array_walk( $x, 'boom', $z );

您可以在这里找到更多信息:http://php.net/manual/en/function.array-walk.php

If the optional userdata parameter is supplied, it will be passed as the third parameter to the callback.