繁体   English   中英

PHP通过一些计算将2个​​数组(多维)合并为Array 3

[英]PHP combine 2 arrays (multidimentional) into Array 3 with some calculations

我对以下问题不屑一顾。 我有2个不同供应商的2个csv文件。 我想将两个供应商的库存添加到新的总阵列中。

这是数组1的输出

Array
(
    [0] => Array
        (
            [ARTNUMBER] => 12345
            [STOCK] =>  3
        )
)

这是数组2的输出

Array
(
    [0] => Array
        (
            [ARTNUMBER] => 12345
            [STOCK] =>  5
        )    
    [2] => Array
        (
            [ARTNUMBER] => 23456
            [STOCK] =>  5
        )
)

新数组应如下所示:

Array
(
    [0] => Array
        (
            [ARTNUMBER] => 12345
            [STOCK] =>  8
        )    
    [2] => Array
        (
            [ARTNUMBER] => 23456
            [STOCK] =>  5
        )
)

我想做两件事:

  • 如果ARTNUMBER在两个数组中,请添加它们。 (数组1 [ARTNUMBER] +数组2 [ARTNUMBER]
  • 如果数组1中的ARTNUMBER不存在于数组1中,则将其添加到数组中。

有人可以帮我解决这个问题吗?
(我正在寻找最简单的方法)

这应该工作

$array_1[] = array( "ARTNUMBER" => 12345, "STOCK" => 5 );
$array_2[] = array( "ARTNUMBER" => 12345, "STOCK" => 5 );
$array_2[] = array( "ARTNUMBER" => 23456, "STOCK" => 5 );

$data = array();
foreach($array_1 as $key => $value) {
    if(key_exists($value["ARTNUMBER"], $data)) {
        $data[$value["ARTNUMBER"]] += $value["STOCK"];
    }
    else {
        $data[$value["ARTNUMBER"]] = $value["STOCK"];
    }
}
foreach($array_2 as $key => $value) {
    if(key_exists($value["ARTNUMBER"], $data)) {
        $data[$value["ARTNUMBER"]] += $value["STOCK"];
    }
    else {
        $data[$value["ARTNUMBER"]] = $value["STOCK"];
    }
}

$final = array();
foreach($data as $key => $value) {
    $final[] = array( "ARTNUMBER" => $key, "STOCK" => $value );
}

echo "<pre>";
print_r($final);
echo "</pre>";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM