2010-12-03 13 views
17

Mögliche Duplizieren:
Remove item from array if it exists in a 'disallowed words' arrayEntfernen von Objekten aus einem Array, wenn sie existieren in einem anderen Array

Lets sagen, dass ich die folgenden zwei PHP-Arrays haben, die ganzen Zahlen enthalten:

$foo = array(1, 5, 9, 14, 23, 31, 45); 
$bar = array(14, 31, 36); 

Ich möchte die Elemente in $foo entfernen, wo derselbe Wert inexistiert

So das Ergebnis des Prozesses würde erstellen $filteredFoo Array, das enthält:

1, 5, 9, 23, 45 

Nachdem durch die docs auf php.net sieht es scheint nicht eine bestehende Funktion zu sein, um diese Art von auszuführen Aktion. Also ist meine einzige Option foreach zu verwenden und iterieren durch $foo Überprüfung der Werte $bar bei jeder Iteration?

Antwort

31

können Sie array_diff() verwenden:

Gibt ein Array, das alle Einträge aus array1, die in einem der anderen Arrays nicht vorhanden sind.

$filteredFoo = array_diff($foo, $bar); 
+2

Vielen Dank, Holz für die Bäume und das alles – MrEyes

Verwandte Themen