如何获得Php多维数组相同的键’;s相同的值’;新阵列中的相关总数是多少? Php多维数组中相同键的相同值的相关总计 新阵列。我提到了一系列如下内容。我需要新的阵列 作为同一商品的总数量。任何人都可以帮助将不胜感激。 我的原始数组如下所示
我希望数组输出如下所示:如何获得Php多维数组相同的键’;s相同的值’;新阵列中的相关总数是多少? Php多维数组中相同键的相同值的相关总计 新阵列。我提到了一系列如下内容。我需要新的阵列 作为同一商品的总数量。任何人都可以帮助将不胜感激。 我的原始数组如下所示,php,arrays,sorting,Php,Arrays,Sorting,我希望数组输出如下所示: Array( [0] => Array ( [item_id] => 1, [item_total_qty] => 0, ) [1] => Array ( [item_id] => 2, [item_total_qty] => 50,
Array(
[0] => Array (
[item_id] => 1,
[item_total_qty] => 0,
)
[1] => Array (
[item_id] => 2,
[item_total_qty] => 50,
)
[2] => Array (
[item_id] => 3,
[item_total_qty] => 20,
)
);
原始表格上的Simple foreach:
$sorted = array();
foreach ($original as $item) {
$id = $item['item']['item_id'];
$sorted[$id]['item_total_qty'] = $sorted[$id] ? $sorted[$id] + $item['qty'] : item['qty'];
$sorted[$id]['item_id'] = $id;
}
$sorted = array_values($sorted);
希望能有所帮助
$arrays = array(
'a' => array(
'item' => array(
'item_id' => 1
),
'qty' => 0
),
'b' => array(
'item' => array(
'item_id' => 2
),
'qty' => 35
),
'c' => array(
'item' => array(
'item_id' => 2
),
'qty' => 15
),
'd' => array(
'item' => array(
'item_id' => 3
),
'qty' => 20
)
);
$result = array();
foreach ($arrays as $key => $array) {
if (is_array($result) && !empty($result)) {
foreach ($result as $key => $r) {
if ($r['item_id'] == $array['item']['item_id']) {
$result[$key]['item_total_qty'] += $array['qty'];
continue 2;
}
}
$result[] = array(
'item_id' => $array['item']['item_id'],
'item_total_qty' => $array['qty']);
} else {
$result[] = array(
'item_id' => $array['item']['item_id'],
'item_total_qty' => $array['qty']);
}
}
我想你应该使用递归函数来解决这个问题。我正在尝试我想要的是总数量的总和。。此数组将只提供商品id和数量。对不起,我建议您对其求和。我已经编辑了我的答案。它现在似乎能按你的要求工作。
$arrays = array(
'a' => array(
'item' => array(
'item_id' => 1
),
'qty' => 0
),
'b' => array(
'item' => array(
'item_id' => 2
),
'qty' => 35
),
'c' => array(
'item' => array(
'item_id' => 2
),
'qty' => 15
),
'd' => array(
'item' => array(
'item_id' => 3
),
'qty' => 20
)
);
$result = array();
foreach ($arrays as $key => $array) {
if (is_array($result) && !empty($result)) {
foreach ($result as $key => $r) {
if ($r['item_id'] == $array['item']['item_id']) {
$result[$key]['item_total_qty'] += $array['qty'];
continue 2;
}
}
$result[] = array(
'item_id' => $array['item']['item_id'],
'item_total_qty' => $array['qty']);
} else {
$result[] = array(
'item_id' => $array['item']['item_id'],
'item_total_qty' => $array['qty']);
}
}