Php 将相同的值数组合并到一个(字符串值)中,并将其对应的整数值和到相同的索引中?
我有这个数组Php 将相同的值数组合并到一个(字符串值)中,并将其对应的整数值和到相同的索引中?,php,Php,我有这个数组 Array ( [0] => Array ( [category_name] => Dessert1 [totalOrders] => 3 ) [1] => Array ( [category_name] => Dessert1 [totalOrders] => 1 )
Array
(
[0] => Array
(
[category_name] => Dessert1
[totalOrders] => 3
)
[1] => Array
(
[category_name] => Dessert1
[totalOrders] => 1
)
[2] => Array
(
[category_name] => Category 3
[totalOrders] => 1
)
)
Array
(
[0] => Array
(
[category_name] => Dessert1
[totalOrders] => 4
)
[1] => Array
(
[category_name] => Category 3
[totalOrders] => 1
)
)
我想把它转换成这个数组
Array
(
[0] => Array
(
[category_name] => Dessert1
[totalOrders] => 3
)
[1] => Array
(
[category_name] => Dessert1
[totalOrders] => 1
)
[2] => Array
(
[category_name] => Category 3
[totalOrders] => 1
)
)
Array
(
[0] => Array
(
[category_name] => Dessert1
[totalOrders] => 4
)
[1] => Array
(
[category_name] => Category 3
[totalOrders] => 1
)
)
其实很简单。您只需在数据上循环,并选择独特的类别。当存在重复项时,将订单添加到类别的总数中
// The stuff from your post
$data = array(
array('category_name' => 'Dessert1', 'totalOrders' => 3),
array('category_name' => 'Dessert1', 'totalOrders' => 1),
array('category_name' => 'Category 3', 'totalOrders' => 1),
);
// Auxiliary variable
$result = array();
// Go over the data one by one
foreach ($data as $item)
{
// Use the category name to identify unique categories
$name = $item['category_name'];
// If the category appears in the auxiliary variable
if (isset($result[$name]))
{
// Then add the orders total to it
$result[$name]['totalOrders'] += $item['totalOrders'];
}
else // Otherwise
{
// Add the category to the auxiliary variable
$result[$name] = $item;
}
}
// Get the values from the auxiliary variable and override the
// old $data array. This is not strictly necessary, but if you
// want the indices to be numeric and in order then do this.
$data = array_values($result);
// Take a look at the result
var_dump($data);
到目前为止你试过什么吗?所以这不是一个编码服务。我已经考虑过了,但哪儿也找不到。我可以通过使用其他方法来完成我的任务,但如果我可以修改此数组,那么它将是一个更好的选择。提示:迭代数组并翻转键,以便使用category_name值作为键。非常感谢Sverri M.Olsen,这真的很有帮助。