我想实现下面的效果
$result = array( 100001=>array( 'proc_id'=>102, 'num'=>2, ), 100002=>array( 'proc_id'=>100, 'num'=>3, ) );$new = array( //新数组 100001=>array( 'proc_id'=>102, 'num'=>2' ) );$new2 = array( //新数组2 100003=>array( 'proc_id'=>103, 'num'=>2' ) );//想实现的最终结果$result = array( 100001=>array( 'proc_id'=>102, 'num'=>4, ), 100002=>array( 'proc_id'=>100, 'num'=>3, ), 100003=>array( 'proc_id'=>103, 'num'=>3, ) );不知道说的清不清楚?
array_merge
$ar=array_combine(array_merge(array_keys($new),array_keys($new2)),array_merge($new,$new2));foreach($ar as $k=>$v){ if(!$result[$k]){ $result[$k] = $v; }else{ $result[$k]['num'] += $v['num']; }}print_r($result); 1楼的方法如果是字符串的键值是可以的,但是对数字键值的行不通的,楼主可以用我下面这个方法
$arr = $result+$new+$new2;
print_r($arr);
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号