簡體   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