# 常用筆記 ## array_map #### non arrow function ```php= $numbers = [10, 20, 30, 40, 50]; $sum = array_map(function ($it, $index) { print_r($it . ' ' . $index . "\n"); return $it * 10; }, $numbers, array_keys($numbers)); print_r("map sum:"); print_r($sum); print_r("---" . "\n"); ``` #### arrow function ```php= $sum = array_map( fn ($it, $index) => $it * 10, $numbers, array_keys($numbers) ); print_r("map with arrow function sum:"); print_r($sum); print_r("---" . "\n"); ``` ## array_reduce #### non arrow function 透過 use函數 將外部的$numbers傳進callback內, 即可在array_reduce內部獲取迭代的index ```php= $numbers = [10, 20, 30, 40, 50]; $sum = array_reduce($numbers, function ($sum, $it) use ($numbers) { $index = array_search($it, $numbers); print_r($index . " " . $sum . " " . $it . "\n"); return $sum + $it; }, 0); print_r('reduce sum:' . $sum . "\n"); //150 ``` #### arrow function 透過 use函數 將外部的$numbers傳進callback內, 即可在array_reduce內部獲取迭代的index ```php= $numbers = [10, 20, 30, 40, 50]; $sum2 = array_reduce($numbers, fn ($sum, $it) => $sum + $it, 0); print_r('reduce sum:' . $sum . "\n"); //150 ```