2017-04-10 87 views
-1

我遇到問題,我想按值合併數組。下面是一個入門例如,條目陣列有100條記錄按值合併數組PHP

 

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [code] => dfrr5tv5t5vt5 
      [status] => online 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [code] => e32e3e2e2323e23e 
      [status] => online 
     ) 

    [2] => Array 
     (
      [id] => 1 
      [desc] => Some_description 
     ) 

    [3] => Array 
     (
      [id] => 2 
      [desc] => Some_description_2 
     ) 
    .... 
) 

我謹[ID]

 

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [code] => dfrr5tv5t5vt5 
      [status] => online 
      [desc] => Some_description 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [code] => e32e3e2e2323e23e 
      [status] => online 
      [desc] => Some_description_2 
     ) 

    .... 
) 

+0

你是如何獲得這些值的?因爲我相信你可以在這樣的數組之前做到這一點。例如,您可以將數組的關鍵字設置爲ID,並以這種方式輕鬆地添加到該數組中,因爲您可以添加到該特定ID。 – Nytrix

+0

PHP函數['array_reduce()'](http://php.net/manual/en/function.array-reduce.php)是你需要的工具。 – axiac

+0

不太可能,因爲數據是以隨機順序下載的 –

回答

0

使用assocative陣列打通合併數組以下結果。使用$row["id"]作爲關聯指數。

$result = []; 
foreach ($arr as $row) { 
    $result[$row["id"]] = isset($result[$row["id"]]) ? array_merge($result[$row["id"]], $row) : $row; 
} 
$result = array_values($result); // optional, this removes associative keys 
+0

如何通過兩個鍵比較記錄? –

+0

@TyTus你是什麼意思? – Peter

+0

在你的解決方案中,你是通過「id」合併數組,但如果我想通過兩個值「id」和「code」合併數組該怎麼辦。當然,如果第二個數組是「代碼」 –