Home > Backend Development > PHP Tutorial > PHP一个数组问题,急求大神给解决下,跪求解决,希望早上一起来就有大神帮忙解决了,谢谢

PHP一个数组问题,急求大神给解决下,跪求解决,希望早上一起来就有大神帮忙解决了,谢谢

WBOY
Release: 2016-06-06 20:19:50
Original
1011 people have browsed it

现有一个数组是这样的

<code>$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',
            ),
        )

);
</code>
Copy after login
Copy after login

我需要的是计算出这个三维数组里面的小数组里面count 相加的和,这个三维里面有三个小数组,小数组里面还有三个数组,要求的就是这三个第二维里面的数组count的和, 我foreach 出来然后 += 是把这个三维数组里面所有的count 都相加了,我现在不需要求全部的和,需要分别的和,求帮忙在下面发下解决的方式,谢谢! 不知道我表述清楚没有,如果没有表述清楚,回复下谢谢

回复内容:

现有一个数组是这样的

<code>$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',
            ),
        )

);
</code>
Copy after login
Copy after login

我需要的是计算出这个三维数组里面的小数组里面count 相加的和,这个三维里面有三个小数组,小数组里面还有三个数组,要求的就是这三个第二维里面的数组count的和, 我foreach 出来然后 += 是把这个三维数组里面所有的count 都相加了,我现在不需要求全部的和,需要分别的和,求帮忙在下面发下解决的方式,谢谢! 不知道我表述清楚没有,如果没有表述清楚,回复下谢谢

<code>$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 "<pre class="brush:php;toolbar:false">";
var_dump($count_arr);
exit;
Copy after login

foreach外围定义一个空数组
然后两个foreach
在第二层foreach里面就可以统计第二层数组中的总计了
而且是分组的
每一组总和相当于这个数组的元素
想要计算所有总和
再遍历这个数组不就行了吗
手机码字 不方便上代码 我这个方法是除去演示数据 也就四行…
-------分割线------
电脑上线了,贴上代码吧

<code> //定义空数组 准备储存下面的数据
$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);</code>
Copy after login

<code>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);</code>
Copy after login

$result=array();
foreach ($arr as $val)
{

<code>$count=0;
foreach ($val as $v)
  {
      $count+=count($v);
  }
$result[]=$count;</code>
Copy after login

}
// $result 这个数组里面存放的就是这个三维数组中每个二维数组下的所有小数组的长度和。

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template