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

PHP 合并和分组数组并总结它们

PHP 合并和分组数组并总结它们

PHP
函数式编程 2021-08-28 17:49:00
我有以下数组,它们根据某些计算返回值:print_r($adult_array);print_r($children_array);print_r($senior_array);//Adult array startArray(    [0] => Array    (        [travel_plan] => Business        [premium_price] => 1336.81        [eligibility] => Up to 75 Yrs        [lower_limit] => 0        [upper_limit] => 75        [no_travellers] => 2    )    [1] => Array    (        [travel_plan] => Holiday        [premium_price] => 22960.81        [eligibility] => Up to 75 Yrs        [lower_limit] => 0        [upper_limit] => 75        [no_travellers] => 2    )    [2] => Array    (        [travel_plan] => Schengen        [premium_price] => 11740.81        [eligibility] => Up to 75 Yrs        [lower_limit] => 0        [upper_limit] => 75        [no_travellers] => 2    )    [3] => Array    (        [travel_plan] => Student        [premium_price] => 22960.81        [eligibility] => Up to 30 Yrs        [lower_limit] => 0        [upper_limit] => 30        [no_travellers] => 2    ))//Adult array end //Children array start Array(    [0] => Array    (        [travel_plan] => Student        [premium_price] => 5740.205        [eligibility] => Up to 30 Yrs        [lower_limit] => 0        [upper_limit] => 30        [no_travellers] => 1    ))//Children array end //Senior array startArray(    [0] => Array    (        [travel_plan] => Senior        [premium_price] => 38714.41        [eligibility] => 76 to 85 Yrs        [lower_limit] => 76        [upper_limit] => 85        [no_travellers] => 1    ))//Senior array end上面的数组输出由不同的变量检索和保存。我想根据旅行计划合并/分组数组,同时总结所有类似旅行计划的保险费率。这样每个旅行计划只有一个数组,每个旅行计划的溢价总和。
查看完整描述

3 回答

?
一只斗牛犬

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

array_merge(array1,array2,....)将是你的答案。这是一个例子。


$a = [

  [

      'travel_plan '=>'Schengen',

      'premium_price '=>'Rs 1,200'

    ],

  [

      'travel_plan '=>'Business ',

      'premium_price '=>'Rs 1,300'

    ]

];


$b = [

  [

      'travel_plan '=>'Senior ',

      'premium_price '=>'Rs 1,600'

    ]

];


$c =array_merge ($a,$b);

echo '<pre>';

print_r($c);

输出将是这样的


Array

(

    [0] => Array

        (

            [travel_plan ] => Schengen

            [premium_price ] => Rs 1,200

        )


    [1] => Array

        (

            [travel_plan ] => Business 

            [premium_price ] => Rs 1,300

        )


    [2] => Array

        (

            [travel_plan ] => Senior 

            [premium_price ] => Rs 1,600

        )


)


查看完整回答
反对 回复 2021-08-28
?
慕斯王

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

你可以试试这个方法。


$full_array = array_merge($adult_array,$children_array,$senior_array);

$result = [];

foreach($full_array as $item){

    // Count how many index

    if(isset($result[$item['travel_plan']])){

        $result[$item['travel_plan']] += 1;

    }else{

        $result[$item['travel_plan']] = 1;

    }


    // Sum total value

    if(isset($result[$item['travel_plan'].'_total'])){

        $result[$item['travel_plan'].'_total'] =         $result[$item['travel_plan'].'_total'] + $item['premium_price'];

    }else{

        $result[$item['travel_plan'].'_total'] = $item['premium_price'];

    }

}


查看完整回答
反对 回复 2021-08-28
  • 3 回答
  • 0 关注
  • 167 浏览

添加回答

举报

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