Php 将数组列表与数组中的下一个列表进行比较
我想将列表与其他列表进行比较,以便在它们的编号(id_文章)相同时合并。 在我的示例中,我希望获得以下最终数组列表: *最终版* 首字母Php 将数组列表与数组中的下一个列表进行比较,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想将列表与其他列表进行比较,以便在它们的编号(id_文章)相同时合并。 在我的示例中,我希望获得以下最终数组列表: *最终版* 首字母 Array ( [0] => Array ( [id_article] => 1 [quantite] => 2 ) [1] => Array ( [id_article] => 1
Array
(
[0] => Array
(
[id_article] => 1
[quantite] => 2
)
[1] => Array
(
[id_article] => 1
[quantite] => 3
)
[2] => Array
(
[id_article] => 3
[quantite] => 1
)
)
我尝试了next()和current(),但在本例中无效
提前感谢您的帮助、建议或其他示例。您必须执行一些循环工作:
$result = array();
foreach ($array as $value) {
if (isset($result[$value['id_article']])) {
$result[$value['id_article']] += $value['quantite'];
} else {
$result[$value['id_article']] = $value['quantite'];
}
}
$output = array();
foreach ($result as $id => $value) {
$output[] = array('id_article' => $id, 'quantite' => $value);
}
试试这个
echo "<pre>";
$arr_input = array(
array
(
"id_article" => 1,
"quantite" => 2
),
array
(
"id_article" => 1,
"quantite" => 3
),
array
(
"id_article" => 3,
"quantite" => 1
)
);
$arr_temp = array();
foreach($arr_input as $arr)
{
if(isset($arr_temp[$arr['id_article']]))
{
$arr_temp[$arr['id_article']] += $arr['quantite'];
}
else
{
$arr_temp[$arr['id_article']] = $arr['quantite'];
}
}
$arr_ouput = array();
foreach($arr_temp as $key=>$val)
{
$arr_output[] = array("id_article" => $key, "quantite" => $val);
}
print_r($arr_output);
echo”“;
$arr\u输入=数组(
排列
(
“id_文章”=>1,
“量化”=>2
),
排列
(
“id_文章”=>1,
“量化”=>3
),
排列
(
“id_文章”=>3,
“量化”=>1
)
);
$arr_temp=array();
foreach($arr\u输入为$arr)
{
如果(isset($arr_temp[$arr['id_article']]))
{
$arr_temp[$arr['id_article']]+=$arr['quantite'];
}
其他的
{
$arr_temp[$arr['id_article']]=$arr['quantite'];
}
}
$arr_output=array();
foreach($arr_temp as$key=>$val)
{
$arr_output[]=array(“id_article”=>$key,“quantite”=>$val);
}
打印输出($arr\u输出);
Thx@exec我将此解决方案用于我的项目。
echo "<pre>";
$arr_input = array(
array
(
"id_article" => 1,
"quantite" => 2
),
array
(
"id_article" => 1,
"quantite" => 3
),
array
(
"id_article" => 3,
"quantite" => 1
)
);
$arr_temp = array();
foreach($arr_input as $arr)
{
if(isset($arr_temp[$arr['id_article']]))
{
$arr_temp[$arr['id_article']] += $arr['quantite'];
}
else
{
$arr_temp[$arr['id_article']] = $arr['quantite'];
}
}
$arr_ouput = array();
foreach($arr_temp as $key=>$val)
{
$arr_output[] = array("id_article" => $key, "quantite" => $val);
}
print_r($arr_output);
$a = array(
array(
'id_article' => 1,
'quantite' => 2,
),
array(
'id_article' => 1,
'quantite' => 3,
),
array(
'id_article' => 3,
'quantite' => 1,
),
);
$b = array();
foreach ($a as $k => $v) {
if (array_key_exists($v['id_article'], $b)) {
$b[$v['id_article']]['quantite'] += $v['quantite'];
} else {
$b[$v['id_article']] = $v;
}
}
return array_values($b);