PHP array_walk_recursive 和 array_map 用法及區別 以及在其中使用閉包(匿名函數)use()


array_walk_recursive ()

函數中的閉包函數可以帶兩個參數 ,第一個為value, 第二個為key

$data = [];

array_walk_recursive
($value,function($v,$k) use(&$data) { $data[] = $v; });

return $data;

$value (array)  穿進來的數組

$v 循環傳給閉包函數的 value 值

$k 循環傳給閉包函數的 key 值

use () 連接閉包和外界變量 其作用是從父作用域繼承變量

&$data  閉包函數外的變量,傳入到閉包中,用來傳值

----------------------------------------------------------------------------------------------------------

另一種寫法:

$sweet = array(
  'a' => 'apple',
  'b' => 'banana'
);

$fruits = array(

'sweet' => $sweet,
  'sour' => 'lemon' ); function test_print($item, $key) { echo " $key holds $item <br/>"; } array_walk_recursive($fruits, 'test_print');

參考地址 :https://www.jb51.net/article/97402.htm

 

 

 

array_map()

函數中的閉包只能傳入 value值

class demo {

    public function map($arr) {
        array_map([$this,"aa"],$arr);
    }

    public function aa($v) {
       echo "<pre>";
       print_r($v);
    }

}

$arr  傳入的數據

$this 調用這個class

$v 傳入的數組

-----------------------------------------------------

另一種寫法:

array_map(function($v) use(&$data) {

        return $data;

},$arr);

參考地址 : https://www.cnblogs.com/lbcheng/p/7813888.html

 

 

 

use()

參考地址 :https://blog.csdn.net/echojson/article/details/80633118

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM