平时开发中会频繁地遍历数组,其中数组中的关联关系也用的比较普遍,比如下面的例子:根据字段id找到对应的money值,生成一个新的结果集。
<?php
//PHP数组循环优化(简单版)
//条件a:id==b.pid 期望结果 [[id=1,name=a1,mone=100],[id=2,name=a2,mone=200]...]
//无需两层foreach循环
//基础数组
$a = [['id'=>1,'name'=>'a1'],['id'=>2,'name'=>'a2'],['id'=>3,'name'=>'a3']];
$b = [['pid'=>1,'money'=>100],['pid'=>2,'money'=>200],['pid'=>3,'money'=>300]];
//pid=>money
$moneyIds = array_column($b, 'money','pid');
//获取结果集
array_walk($a, function(&$val) use($moneyIds) {
$val['money'] = isset($moneyIds[$val['id']]) ? $moneyIds[$val['id']]:0;
return $val;
});
echo "<pre>";
print_r($a);
总结:好的优化不仅是提高效率,同时也提高了代码可读性以及减少了代码量。