扫码关注官方订阅号
$arr = array( 0 => array('0' => 24505.72, '1' => 6126.43, 4 => 23), 1 => array(0 => 3865.64, 1 => 3265.64, 32 => 23) );
例如这是一个二维数组,求出里面每个一维数组对应相同地址的和,两个一维数组第一个数相加求和,第二个数相加求和...,如果值不是数字以0代替
是这个意思,每个对应地址求和,如果不是数字或者为空以0代替
光阴似箭催人老,日月如移越少年。
$arr = array( 0 => array('0' => 24505.72, '1' => 6126.43, 4 => 23), 1 => array(0 => 3865.64, 1 => 3265.64, 32 => 23, 'hy' => 11) ); $new_array = array(); foreach ($arr as $key => $value) { $val = array_values($value); foreach ($val as $k => $v) { if(! isset($new_array[$k])) $new_array[$k] = $v; else $new_array[$k] += $v; } } print_r($new_array);die;
不知道这个是不是你期望的结果
以样例而言:如果你的要求是要求出:$arr0+$arr1 , $arr0+$arr1 ,$arr0 ,$arr1 要求数组里下标一样的值累加,那么实际应该先把整个二维数组重新反向索引一下:
$arr_sum=array(); $arr_idx=array(); foreach($arr as $arr_1D){ foreach($arr_1D as $k=>$v){ $key='i_'.trim($k); //用来索引原键值,不建议直接用数字值 $val=is_numeric($v)?$v:($v*1); if(!isset($arr_sum[$key])){ $arr_sum[$key]=$val; $arr_idx[$key]=array($v); }else{ $arr_sum[$key]+=$val; $arr_idx[$key][]=$v; } } } print_r($arr_sum); //输出的是原$arr各个键对应的数字和 print_r($arr_idx); //输出的是原$arr各个键对应的数组元素
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不知道这个是不是你期望的结果
以样例而言:如果你的要求是要求出:$arr0+$arr1 , $arr0+$arr1 ,$arr0 ,$arr1 要求数组里下标一样的值累加,那么实际应该先把整个二维数组重新反向索引一下: