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
);

搞定。

0x03 参考

PHP 文档 - array_map

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值