为了账号安全,请及时绑定邮箱和手机立即绑定

php数组求和问题

php数组求和问题

PHP
慕虎7371278 2019-03-11 06:57:11
最近在写一个项目 项目中 涉及到二维数组求和问题 代码如下 <?php $arr['info'] = []; $arr['info'][] = array('payment_type'=>2,'place_rental'=>150); $arr['info'][] = array('payment_type'=>2,'place_rental'=>250); $arr['info'][] = array('payment_type'=>2,'place_rental'=>350); $arr['info'][] = array('payment_type'=>3,'place_rental'=>350); $arr['info'][] = array('payment_type'=>3,'place_rental'=>250); $arr['info'][] = array('payment_type'=>4,'place_rental'=>250); $arr['info'][] = array('payment_type'=>4,'place_rental'=>250); echo '<h1> $arr:</h1>'; var_dump($arr); echo '<hr />'; $arrs['info'] = []; $arrs['info'][] = ['payment_type'=>2,'count_place_rental'=>750]; $arrs['info'][] = ['payment_type'=>3,'count_place_rental'=>600]; $arrs['info'][] = ['payment_type'=>4,'count_place_rental'=>500]; echo '<h1> $arrs:</h1>'; var_dump($arrs); 打印后的结果 $arr: E:\phpstudy\WWW\sum_arr.php:13: array (size=1) 'info' => array (size=7) 0 => array (size=2) 'payment_type' => int 2 'place_rental' => int 150 1 => array (size=2) 'payment_type' => int 2 'place_rental' => int 250 2 => array (size=2) 'payment_type' => int 2 'place_rental' => int 350 3 => array (size=2) 'payment_type' => int 3 'place_rental' => int 350 4 => array (size=2) 'payment_type' => int 3 'place_rental' => int 250 5 => array (size=2) 'payment_type' => int 4 'place_rental' => int 250 6 => array (size=2) 'payment_type' => int 4 'place_rental' => int 250 $arrs: E:\phpstudy\WWW\sum_arr.php:23: array (size=1) 'info' => array (size=3) 0 => array (size=2) 'payment_type' => int 2 'count_place_rental' => int 750 1 => array (size=2) 'payment_type' => int 3 'count_place_rental' => int 600 2 => array (size=2) 'payment_type' => int 4 'count_place_rental' => int 500 求$arr 二维数组中 相同的 payment_type类型 的 place_rental的数值进行相加 最后组合成 $arrs的形式 ?
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

如果确定数组里只有payment_typeplace_rental两个key的话,那么完全可以把payment_type的值当下标,count_place_rental当做值

$new_arr = [];
foreach ($arr['info'] as $key => $value) {
    if (!isset($new_arr[$value['payment_type']]) || empty($new_arr[$value['payment_type']])) {
        $new_arr[$value['payment_type']] = $value['place_rental'];
    } else {
        $new_arr[$value['payment_type']] += $value['place_rental'];
    }
}
var_dump($new_arr);
查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 414 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信