現有一個數組是這樣的
$arr = array( '0'=> array( '0'=>array( 'price'=> '118080814c7565909', 'count'=> '100', 'money'=> '200', ), '1'=>array( 'price'=> '118080814c7eca590', 'count'=> '10', 'money'=> '27', ), '2' =>array( 'price'=> '118080814c7eca5901', 'count'=> '19', 'money'=> '200', ), ), '1'=>array( '0'=>array( 'price'=> '118080814c7565979', 'count'=> '100', 'money'=> '200', ), '1'=>array( 'price'=> '118080814c7eca888', 'count'=> '101', 'money'=> '27', ), '2' =>array( 'price'=> '118080814c7eca59000', 'count'=> '160', 'money'=> '200', ), ), '2'=>array( '0'=>array( 'price'=> '118080814c7565009', 'count'=> '190', 'money'=> '230', ), '1'=>array( 'price'=> '118080814c7eca670', 'count'=> '120', 'money'=> '217', ), '2' =>array( 'price'=> '118080814c7eca5098', 'count'=> '120', 'money'=> '205', ), ));
我需要的是計算出這個三維數組裡面的小數組裡面count 相加的和,這個三維裡面有三個小數組,小數組裡面還有三個數組,要求的就是這三個第二維裡面的數組count的和, 我foreach 出來然後 += 是把這個三維數組裡面所有的count 都相加了,我現在不需要求全部的和,需要分別的和,求幫忙在下面發下解決的方式,謝謝! 不知道我表述清楚沒有,如果沒有表述清楚,回複下謝謝
回複內容:
現有一個數組是這樣的
$arr = array( '0'=> array( '0'=>array( 'price'=> '118080814c7565909', 'count'=> '100', 'money'=> '200', ), '1'=>array( 'price'=> '118080814c7eca590', 'count'=> '10', 'money'=> '27', ), '2' =>array( 'price'=> '118080814c7eca5901', 'count'=> '19', 'money'=> '200', ), ), '1'=>array( '0'=>array( 'price'=> '118080814c7565979', 'count'=> '100', 'money'=> '200', ), '1'=>array( 'price'=> '118080814c7eca888', 'count'=> '101', 'money'=> '27', ), '2' =>array( 'price'=> '118080814c7eca59000', 'count'=> '160', 'money'=> '200', ), ), '2'=>array( '0'=>array( 'price'=> '118080814c7565009', 'count'=> '190', 'money'=> '230', ), '1'=>array( 'price'=> '118080814c7eca670', 'count'=> '120', 'money'=> '217', ), '2' =>array( 'price'=> '118080814c7eca5098', 'count'=> '120', 'money'=> '205', ), ));
我需要的是計算出這個三維數組裡面的小數組裡面count 相加的和,這個三維裡面有三個小數組,小數組裡面還有三個數組,要求的就是這三個第二維裡面的數組count的和, 我foreach 出來然後 += 是把這個三維數組裡面所有的count 都相加了,我現在不需要求全部的和,需要分別的和,求幫忙在下面發下解決的方式,謝謝! 不知道我表述清楚沒有,如果沒有表述清楚,回複下謝謝
$arr = array( '0'=> array( '0'=>array( 'price'=> '118080814c7565909', 'count'=> '100', 'money'=> '200', ), '1'=>array( 'price'=> '118080814c7eca590', 'count'=> '10', 'money'=> '27', ), '2' =>array( 'price'=> '118080814c7eca5901', 'count'=> '19', 'money'=> '200', ), ), '1'=>array( '0'=>array( 'price'=> '118080814c7565979', 'count'=> '100', 'money'=> '200', ), '1'=>array( 'price'=> '118080814c7eca888', 'count'=> '101', 'money'=> '27', ), '2' =>array( 'price'=> '118080814c7eca59000', 'count'=> '160', 'money'=> '200', ), ), '2'=>array( '0'=>array( 'price'=> '118080814c7565009', 'count'=> '190', 'money'=> '230', ), '1'=>array( 'price'=> '118080814c7eca670', 'count'=> '120', 'money'=> '217', ), '2' =>array( 'price'=> '118080814c7eca5098', 'count'=> '120', 'money'=> '205', ), ));foreach($arr as $key=>$val){ $count_arr[$key]=0; if(is_array($val)){ foreach($val as $key1=>$val1){ $count_arr[$key]+=$val1['count']; } }}echo "
";var_dump($count_arr);exit;
foreach外圍定義一個空數組
然後兩個foreach
在第二層foreach裡面就可以統計第二層數組中的總計了
而且是分組的
每一組總和相當於這個數組的元素
想要計算所有總和
再遍曆這個數組不就行了嗎
手機碼字 不方便上代碼 我這個方法是除去示範資料 也就四行…
-------分割線------
電腦上線了,貼上代碼吧
//定義空數組 準備儲存下面的資料$save=array();foreach ($arr as $key=>$list) { //手機上想的時候忘記考慮初始化的問題 $save[$key]=0; //遍曆內部數組 foreach($list as $item){ //將內部數組的count項累加 $save[$key]+=$item['count']; }}//列印出來var_dump($save);//上面的代碼已經實現了你想要的功能 好人做到底 下面是計算全部總數的$countAll=0;foreach($save as $item){ $countAll+=$item;}var_dump($countAll);
function sum(array $array){ $tmp = 0; array_walk($array,function($value) use(&$tmp){ isset($value['count']) && $tmp+=$value['count']; }); return $tmp;}$sumList = array();array_walk($arr,function($value) use(&$sumList){ $sumList[] = sum($value);});var_dump($sumList);
$result=array();
foreach ($arr as $val)
{
$count=0;foreach ($val as $v) { $count+=count($v); }$result[]=$count;
}
// $result 這個數組裡面存放的就是這個三維數組中每個二維數組下的所有小數組的長度和。