PHP 使用 array_map 替代 foreach

讲个 PHP 的骚操作。论如何实现:把二维数组内某二维元素的值,单独提出来组成一维数组。

0x00 传统操作
$pieces
= []; foreach($whole as $item) { $pieces[] = $item['foo']; } return $pieces;
0x01 骚操作
return array_map( function ($item) { return $item['foo']; }, $whole ); 省掉两个变量($pieces、$item),对于业务逻辑比较复杂的位置,省一个变量说不定就少死十个脑细胞… PHP 内,函数内部变量没有作用域之分,只有出函数后才会销毁。所以 $item 在匿名函数内是外部无法访问的。 0x02 拓展
array_map 其实还有不少用途,需要遍历数组每个元素的「值」的时候,都可以派上用场。 但需要遍历 Key
=> Value 形式的关联数组,该怎么操作呢? return array_map( function callback($k, $v) { ... }, array_keys($array), $array ); 搞定。

 

posted @ 2021-07-05 10:51  piwenfei  阅读(513)  评论(0编辑  收藏  举报