Php 在总和(价格)值之后,按id删除数组中的相同id
我有php订单数组,我正在将此数组发送给shipping service,但我的客户有2-3个相同Php 在总和(价格)值之后,按id删除数组中的相同id,php,arrays,Php,Arrays,我有php订单数组,我正在将此数组发送给shipping service,但我的客户有2-3个相同shop\u id的订单。我正在发送第3次发货这是一个问题,必须只发送一次带有店铺id的发货,并且必须是总价 我该怎么做?下面是我的数组输出 Array ( [date] => 2019-05-23 [name] => Alex [shop_id] => 1 [price] => 13.45 ) Array ( [date] =>
shop\u id
的订单。我正在发送第3次发货这是一个问题,必须只发送一次带有店铺id的发货,并且必须是总价
我该怎么做?下面是我的数组输出
Array
(
[date] => 2019-05-23
[name] => Alex
[shop_id] => 1
[price] => 13.45
)
Array
(
[date] => 2019-05-23
[name] => Alex
[shop_id] => 1
[price] => 22.45
)
Array
(
[date] => 2019-05-23
[name] => Alan
[shop_id] => 3
[price] => 83.56
)
我的数组代码:
print("<pre>".print_r($orders,true)."</pre>");
我的代码
Array
(
)
您可以构建一个由shop-id索引的结果数组。然后迭代数据数组并检查该键是否已经存在。如果键不存在,则将该项添加到结果数组中。如果项目存在,只需更新价格
$data=[
[
“日期”=>“2019-05-23”,
“name”=>“Alex”,
“店铺id”=>1,
“价格”=>12.34,
],
[
“日期”=>“2019-05-23”,
“name”=>“Alex”,
“店铺id”=>2,
“价格”=>12.34,
],
[
“日期”=>“2019-05-23”,
“name”=>“Alex”,
“店铺id”=>1,
“价格”=>23.45,
],
];
$result=[];
foreach($数据作为$项){
$key='SHOP-ID-'。$item['SHOP_-ID'];
如果(!array_key_存在($key,$result)){
$result[$key]=$item;
}否则{
$result[$key]['price']+=$item['price'];
}
}
var_dump($结果);
print\r是您解决问题的尝试吗?@Andreas否,我的数组错误,我需要使用相同的店铺id对价格值求和,并且在相同的店铺id之后,只有1个项目必须存在重复的@SwiftDeveloper检查输出可能重复
$newarray = array();
foreach($arr as $ar)
{
foreach($ar as $k => $v)
{
if(array_key_exists($v, $newarray))
$newarray[$v]['price'] = $newarray[$v]['price'] + $ar['price'];
else if($k == 'shop_id')
$newarray[$v] = $ar;
}
}
print("<pre>".print_r($newarray,true)."</pre>");
Array
(
)