2013-10-03 103 views
0

對象的數組我有以下列格式的數組: -過濾基於條件

[ 
{ name : "Foo", 
    type : "Bar" 
}, 
{ 
    name : "Foo", 
    type : "Row" 
}, 
{ 
    name : "Foo" 
} 
] 

我想刪除「富」的出現,只有當它沒有一個類型。基本上,只要類型不同,在數組中可以有重複,並且在沒有類型的情況下不能重複。任何幫助表示讚賞!

謝謝!

+1

問題要求代碼必須表現出對問題的理解最小正在解決。包括**嘗試的解決方案**,**爲什麼他們沒有工作**,以及預期的結果。 – showdev

回答

2

我假設你正在使用json_decoded對象數組。在這種情況下,你可以運行一個簡單的array_filter()這樣的:

$filtered_array = array_filter($array, function($item) { 
    return isset($item->type); 
}); 
+0

嘿邁克,謝謝你的回覆!如果沒有設置類型,我不想刪除所有項目。我只想刪除只有在類型設置有重複時才設置類型的項目。我希望你明白我在說什麼? – Madhan

+0

@MadhanPadmanabhan好吧我想我誤解了'我想刪除「Foo」的發生只有當它沒有類型'的聲明。在這種情況下,您可能需要更手動地遍歷數組,並可能將元數據臨時存儲到單獨的數據結構中,然後可以利用這些數據結構確定原始數組中的哪些元素需要過濾。我不打算在這裏解決一個解決方案,因爲我希望看到你先嚐試一下。 –