I’m trying to delete elements from a multidimensional-array based on a value. In this case if a sub-array’s key ‘year’ has the value 2011 I want that sub-array out.
Just for the record: i’m running PHP 5.2.
My array looks like this:
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 ) )
Advertisement
Answer
Try this:
function removeElementWithValue($array, $key, $value){ foreach($array as $subKey => $subArray){ if($subArray[$key] == $value){ unset($array[$subKey]); } } return $array; }
Then you would call it like this:
$array = removeElementWithValue($array, "year", 2011);