0

当我将一个数组作为额外参数传递给数组遍历时,它不会像我预期的那样被解释。

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?

谢谢!

4

1 回答 1

1

您必须更改代码以将 $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

如果提供了可选的 userdata 参数,它将作为第三个参数传递给回调。

于 2016-03-18T17:23:42.393 回答