PHP一個數組問題,急求大神給解決下,跪求解決,希望早上一起來就有大神幫忙解決了,謝謝

來源:互聯網
上載者:User
現有一個數組是這樣的

$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 這個數組裡面存放的就是這個三維數組中每個二維數組下的所有小數組的長度和。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.