php数组求和问题

发布于 2022-09-06 10:48:20 字数 2399 浏览 11 评论 0

最近在写一个项目 项目中 涉及到二维数组求和问题 代码如下

<?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的形式 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灯角 2022-09-13 10:48:20

如果确定数组里只有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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文