[英]Can array_walk be nested in php?
我的意思是:
array_walk($arr1,function(){
//point 1
array_walk($arr2,function(){
//point 2
});
});
看來這行不通。 該代碼僅在“ point 1”中運行,而從未在“ point 2”中運行。
這是一個PHP錯誤?
謝謝大家!
我找到了原因,我必須在第一個匿名函數定義中使用“ use(&$ arr2)”,然后內部匿名函數可以使用此變量。
我的PHP版本是5.6
它適用於:
$arrayFirst = array(
'ID' => 1,
'Name' => 'First Array'
);
array_walk($arrayFirst, function () {
echo "<pre>"; print_r("First Walk"); echo "</pre>";
$arraySecond = array(
'ID' => 1,
'Name' => 'Second Array'
);
array_walk($arraySecond, function (){
echo "<pre>"; print_r("Second Walk"); echo "</pre>";
});
});
嘗試這個:
$arr1 = array("1", "2");
$arr2 = array("22", "432");
/*
* Specify the second walkway array as the
* reference param of the callback function
* if you want to manipulate it. Otherwise,
* just pass $arr2.
*/
array_walk($arr1, function ($item1, $key, &$arr2) {
// Point 1
echo "$item1<br>";
array_walk($arr2, function ($item2, $key1) {
// Point 2
echo "$item2<br>";
});
}, $arr2); // Pass the other array to walk in within the walkway
這將打印:
1
22
432
2
22
432
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.