重複鍵我有一個數組稱爲$myarray
-如何刪除陣列
id position status name
4 23 4 john
3 45 3 mike
4 23 0 john
7 25 2 sam
等
我需要通過「ID」和濾波器陣列時,類似的記錄發現,我需要評估由「狀態「鍵刪除匹配行中的數字,該數字爲0或小於」狀態「。有沒有辦法像一些功能一樣快速地做到這一點?
重複鍵我有一個數組稱爲$myarray
-如何刪除陣列
id position status name
4 23 4 john
3 45 3 mike
4 23 0 john
7 25 2 sam
等
我需要通過「ID」和濾波器陣列時,類似的記錄發現,我需要評估由「狀態「鍵刪除匹配行中的數字,該數字爲0或小於」狀態「。有沒有辦法像一些功能一樣快速地做到這一點?
這將刪除所有發生的status=0
。如果妳想要保留這些行,當沒有其他配套id
,除去$value['status'] > 0 &&
$cleanarray = array();
foreach ($myarray as $value) {
if (
$value['status'] > 0 && (
!array_key_exists($value['id'], $cleanarray) ||
$value['status'] > $cleanarray[$value['id']]['status']
)
) $new_cleanarray[$value['id']] = $value;
}
您可以使用array_multisort(..)
排序id
ASC然後status
DESC。然後,您可以遍歷已排序的數組並刪除之前已經看到id
的行。
這可能是你使用
我感到困惑的陣列結構。如果我想要麥克的名字,我會看看$ myarray [1] ['name'](第1行)還是$ myarray [3] ['name'](id = 3) –
注意: PHP數組。只有重複的值。正如這個問題是許多其他的重複:http://stackoverflow.com/questions/5960190/how-to-remove-duplicate-values-in-an-array – thwd