> 백엔드 개발 > PHP 튜토리얼 > PHP一个数组问题,急求大神给解决下,跪求解决,希望早上一起来就有大神帮忙解决了,谢谢

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

WBOY
풀어 주다: 2016-06-06 20:19:50
원래의
1012명이 탐색했습니다.

现有一个数组是这样的

<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>
로그인 후 복사
로그인 후 복사

我需要的是计算出这个三维数组里面的小数组里面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>
로그인 후 복사
로그인 후 복사

我需要的是计算出这个三维数组里面的小数组里面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;
로그인 후 복사

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>
로그인 후 복사

<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>
로그인 후 복사

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

<code>$count=0;
foreach ($val as $v)
  {
      $count+=count($v);
  }
$result[]=$count;</code>
로그인 후 복사

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿