2016-03-02 89 views
0

我有從foreach循環這一結果。 我試着從StackOverflow中的答案中使用foreach循環訪問數組,但在另一個foreach循環中執行時遇到了麻煩。合併重複的值在陣列

Array 
(
    [0] => Array 
     (
      [referenceUid] => FF875951-87CB-942F-84A2-46C620BF07C8 
      [itemUid] => 4CD23391-AD8C-C2FB-EF4A-46093D8A37AE 
      [total] => 300.00 
     ) 

) 

Array 
(
    [0] => Array 
     (
      [referenceUid] => D267A795-E142-C25B-E042-D8A519B57DF4 
      [itemUid] => 4CD23391-AD8C-C2FB-EF4A-46093D8A37AE 
      [total] => 150.00 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [referenceUid] => D267A795-E142-C25B-E042-D8A519B57DF4 
      [itemUid] => 4CD23391-AD8C-C2FB-EF4A-46093D8A37AE 
      [total] => 150.00 
     ) 

) 

我想要的是在referenceUid列合併具有重複值的數組。例如:

Array 
(
    [0] => Array 
     (
      [referenceUid] => FF875951-87CB-942F-84A2-46C620BF07C8 
      [itemUid] => 4CD23391-AD8C-C2FB-EF4A-46093D8A37AE 
      [total] => 300.00 
     ) 

) 

Array 
(
    [0] => Array 
     (
      [referenceUid] => D267A795-E142-C25B-E042-D8A519B57DF4 
      [itemUid] => 4CD23391-AD8C-C2FB-EF4A-46093D8A37AE 
      [total] => 150.00 
     ) 

    [1] => Array 
     (
      [referenceUid] => D267A795-E142-C25B-E042-D8A519B57DF4 
      [itemUid] => 4CD23391-AD8C-C2FB-EF4A-46093D8A37AE 
      [total] => 150.00 
     ) 

) 
+0

如果我得到你的問題的權利,你只是想將所有陣列在一起,其中UID是相同的嗎?如果是,你卡在哪裏?顯示您當前的代碼/嘗試解決問題。 – Rizier123

+0

你爲什麼不讓它密鑰本身 – haseeb

+0

以供將來參考這是一個好主意,提供PHP代碼數組作爲例子輸入,因此我們可以很容易地複製你的數據結構,而不是砍了這一切,並重新組裝起來[這樣的]的(https://eval.in/528472)。它還介紹了我可能誤解了你的數據結構並給你一個不正確的答案的可能性! –

回答

1

您可以構造一個新的(合併)數組並循環輸入以組裝新結構。

一個重要的考慮是使用公共密鑰(referenceUid)作爲數組鍵在新的陣列,因此您可以輕鬆地引用它。如果您最後不需要它,只需重置數組鍵即可$out = array_values($out)

下面是一個例子:

$output = array(); 

foreach ($input as $values) { 
    $key = $values['referenceUid']; 
    $output[$key][] = $values; 
} 

// Don't want the referenceUid in the keys? Reset them: 
$output = array_values($output); 

Example

-2
//both arrays will be merged including duplicates 
$result = array_merge($array1, $array2); 
//duplicate objects will be removed 
$result = array_map("unserialize", array_unique(array_map("serialize", $result))); 
//array is sorted on the bases of id 
sort($result);` 
+0

的意見沒有圖示操作這將變得難以管理,有很多陣列和2中的陣列/對象不重複,因爲該值需要組合 –

+0

所以然後可以使用該唯一$結果= array_merge($數組1,$數組2); – channasmcs