最近工作上常会需要对一个 array 做批次处理,所以整理一下 PHP 做 array mapping 的方法。
Array_map
很直觉的,PHP 有个 function 叫 array_map 就是在做这件事,来看看参数要怎么带吧!
基本上要準备两样东西:被处理的 array 和要对那个 array 做的 function。
<?php// 假设我们有个 array [1,2,3,4,5],我们想让里面每个数变3次方// 做3次方的 functionfunction cube_function($n){ return ($n * $n * $n);}// 要被处理的 array$array = [1, 2, 3, 4, 5];//array_map('要执行的function','被处理的array')$result = array_map('cube_function', $array); print_r($result); // [1,4,9,16,25]?>
Collection Map
如果用Laravel,也可以用 collection 里面 map 的方法。
<?php$result = collect($array)->map(function($each_num){return pow($each_num, 3); // pow(x,y)会回传 x 的 y 次方});?>