2010-11-08 121 views
4

什麼是從php中的數組中刪除項目的最有效的方法,其中值大於預定閾值(例如,給定一個陣列刪除陣列中值高於/低於閾值的項目

Array 
(
    [0] => 1.639 
    [1] => 2.168 
    [4] => 1.897 
    [6] => 4.129 
) 

我想刪除所有值大於2,保鍵關聯,給

Array 
(
    [0] => 1.639 
    [4] => 1.897 
) 

我知道我可以使用foreach()循環做到這一點,但它似乎應該有一個更優雅的方式。

回答

10

不管你用什麼,數組必須要先通過環,但你可以通過使用array_filter隱藏:

function test($var) { return $var < 2; } 
$data = array_filter($data, 'test'); 
+1

+1。我會建議相同的,雖然使用array_walk,這是一個錯誤的功能。我忘了array_filter ...(array_walk也應該通過引用傳遞鍵和實際數組,可能會導致奇怪的行爲。)您發佈的解決方案看起來更好。 :) – 2010-11-08 14:20:49

+0

完美 - 非常感謝。 – Tomba 2010-11-08 15:08:03

相關問題