2010-11-08 3 views
4

Quel est le moyen le plus efficace de supprimer des éléments d'une matrice dans php lorsque la valeur est supérieure à un seuil prédéterminé, par ex. donné un tableauSuppression d'éléments du tableau dont la valeur est supérieure ou inférieure au seuil

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

Je souhaite supprimer tous les éléments dont la valeur est supérieure, par ex. 2, la préservation des associations clés, pour donner

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

Je sais que je peux le faire en utilisant une boucle foreach() mais il semble qu'il devrait y avoir une façon plus élégante.

Répondre

10

Peu importe ce que vous utilisez, le tableau doit être bouclées, mais vous pouvez le cacher en utilisant array_filter:

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

+1. J'allais suggérer la même chose, mais en utilisant array_walk, qui est la mauvaise fonction pour le faire. J'ai oublié array_filter ... (array_walk devrait également passer la clé et le tableau par référence, ce qui entraîne probablement un comportement bizarre.) La solution que vous avez publiée semble bien meilleure. :) –

+0

Parfait - merci beaucoup. – Tomba

Questions connexes