簡體   English   中英

可以將array_walk嵌套在php中嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM