Ich versuche Elemente aus einem multidimensionalen Array basierend auf einem Wert zu löschen. Wenn in diesem Fall der Schlüssel "Jahr" eines Unterfelds den Wert 2011 hat, möchte ich dieses Unterfeld herausführen.Lösche Element aus multidimensionalem Array basierend auf Wert
Nur für den Rekord: Ich betreibe PHP 5.2.
Mein Array sieht wie folgt aus:
Array
(
[0] => Array
(
[filmId] => 61359
[url] => http://www.moviemeter.nl/film/61359
[title] => Unstoppable
[alternative_title] =>
[year] => 2011
[thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/61000/61359.jpg
[average] => 0
[votes_count] => 0
[similarity] => 100.00
[directors_text] => geregisseerd door Richard Harrison
[actors_text] => met Chen Shilony, Ruben Crow en David Powell
[genres_text] => Drama/Komedie
[duration] => 90
)
[1] => Array
(
[filmId] => 87923
[url] => http://www.moviemeter.nl/film/87923
[title] => Unstoppable
[alternative_title] =>
[year] => 2011
[thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/87000/87923.jpg
[average] => 0
[votes_count] => 0
[similarity] => 100.00
[directors_text] => geregisseerd door Example Director
[actors_text] => met Actor 1, Actor 2 en Actor 3
[genres_text] => Drama/Komedie
[duration] => 90
)
[2] => Array
(
[filmId] => 68593
[url] => http://www.moviemeter.nl/film/68593
[title] => Unstoppable
[alternative_title] =>
[year] => 2010
[thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/68000/68593.jpg
[average] => 3.3
[votes_count] => 191
[similarity] => 100.00
[directors_text] => geregisseerd door Tony Scott
[actors_text] => met Denzel Washington, Chris Pine en Rosario Dawson
[genres_text] => Actie/Thriller
[duration] => 98
)
[3] => Array
(
[filmId] => 17931
[url] => http://www.moviemeter.nl/film/17931
[title] => Unstoppable
[alternative_title] => Nine Lives
[year] => 2004
[thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/17000/17931.jpg
[average] => 2.64
[votes_count] => 237
[similarity] => 100.00
[directors_text] => geregisseerd door David Carson
[actors_text] => met Wesley Snipes, Jacqueline Obradors en Mark Sheppard
[genres_text] => Actie/Thriller
[duration] => 96
)
)
Ich zweite diese Wahl. Obwohl die Jacob-Lösung sehr elegant ist, würde ich die Rekursion nicht verwenden, wenn das Array eine Schachtelungsebene hat, die im Voraus bekannt ist, wie in dem oben gezeigten Beispiel. Natürlich müssen Sie sich auf Rekursion verlassen (oder eine Kombination aus array_map mit in_array oder ähnlichen Funktionen, die sogar ein wenig schneller sein kann), wenn die Struktur Ihres Arrays nicht im Voraus bekannt ist. – maraspin
Danke für Ihre Antwort! Funktioniert wunderbar! – Bob
Nur eine Nebenbemerkung: Ich konnte das gewünschte Ergebnis nicht erreichen. Ich bin mir nicht sicher, was ich falsch gemacht habe, aber ich habe es in meinem Fall behoben.Ich musste "return $ array;" hinzufügen Nach der foreach-Schleife, und rufen Sie es wie folgt auf: $ array = removeElementWithValue ($ array, "year", 2011); Für Benutzer, die dies in der Zukunft verwenden und den Index neu anordnen möchten, können Sie Folgendes verwenden: $ array = array_values ($ array); – Bob