我想从基于值的多维数组中删除元素。在这种情况下,如果一个子数组的键'year'的值为2011,那么我需要这个子数组。从基于值的多维数组中删除元素
只是为了记录:我运行PHP 5.2。
我的数组是这样的:
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
)
)
我第二次选择这个。尽管Jacob解决方案非常优雅,但如果数组的嵌套级别事先已知,那么我不会打扰使用递归,如上例所示。 当然,如果事先不知道数组的结构,则必须依赖递归(或array_map与in_array或类似函数的组合,或甚至更快一些)。 – maraspin 2010-12-16 23:53:43
感谢您的回复!奇妙地工作! – Bob 2010-12-17 14:28:10
就在旁注:我无法得到我想要的结果。不知道我做错了什么,但我把它固定在我的情况。我不得不添加“return $ array;”在foreach循环之后,并且像这样调用它: $ array = removeElementWithValue($ array,“year”,2011); 对于将来使用此功能并希望重新排列索引的用户,可以使用以下内容: $ array = array_values($ array); – Bob 2010-12-17 18:17:09