Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组列表与数组中的下一个列表进行比较_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 将数组列表与数组中的下一个列表进行比较

Php 将数组列表与数组中的下一个列表进行比较,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想将列表与其他列表进行比较,以便在它们的编号(id_文章)相同时合并。 在我的示例中,我希望获得以下最终数组列表: *最终版* 首字母 Array ( [0] => Array ( [id_article] => 1 [quantite] => 2 ) [1] => Array ( [id_article] => 1

我想将列表与其他列表进行比较,以便在它们的编号(id_文章)相同时合并。 在我的示例中,我希望获得以下最终数组列表:

*最终版*

首字母

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);