基于价值的多维数组元素删除 [英] Delete element from multidimensional-array based on value
本文介绍了基于价值的多维数组元素删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图删除基于值多维数组元素。在这种情况下,如果一个子阵列的主要年的值是2011我想该子阵列出来。
只是为了记录:我运行PHP 5.2
我的数组是这样的:
阵列
(
[0] =>排列
(
[filmId] => 61359
[URL] => http://www.moviemeter.nl/film/61359
[标题] =>势不可挡
[alternative_title] =>
[同期] => 2011
[缩略图] => http://www.moviemeter.nl/images/covers/thumbs/61000/61359.jpg
[普通] => 0
[votes_count] => 0
[相似] => 100.00
[directors_text] => geregisseerd门理查德·哈里森
[actors_text] =>遇到陈Shilony,鲁本·克罗恩大卫·鲍威尔
[genres_text] =>剧情/ Komedie
[时间] => 90
)
[1] =>排列
(
[filmId] => 87923
[URL] => http://www.moviemeter.nl/film/87923
[标题] =>势不可挡
[alternative_title] =>
[同期] => 2011
[缩略图] => http://www.moviemeter.nl/images/covers/thumbs/87000/87923.jpg
[普通] => 0
[votes_count] => 0
[相似] => 100.00
[directors_text] => geregisseerd门实例主任
[actors_text] =>会见演员1,2男演员恩演员3
[genres_text] =>剧情/ Komedie
[时间] => 90
)
[2] =>排列
(
[filmId] => 68593
[URL] => http://www.moviemeter.nl/film/68593
[标题] =>势不可挡
[alternative_title] =>
[同期] => 2010
[缩略图] => http://www.moviemeter.nl/images/covers/thumbs/68000/68593.jpg
[普通] => 3.3
[votes_count] => 191
[相似] => 100.00
[directors_text] => geregisseerd门托尼·斯科特
[actors_text] =>遇到丹泽尔·华盛顿,克里斯·派恩恩罗莎里奥·道森
[genres_text] => Actie /惊悚
[时间] => 98
)
[3] =>排列
(
[filmId] => 17931
[URL] => http://www.moviemeter.nl/film/17931
[标题] =>势不可挡
[alternative_title] =>九死一生
[同期] => 2004年
[缩略图] => http://www.moviemeter.nl/images/covers/thumbs/17000/17931.jpg
[普通] => 2.64
[votes_count] => 237
[相似] => 100.00
[directors_text] => geregisseerd门大卫·卡森
[actors_text] =>遇到韦斯利·斯奈普斯,杰奎琳·奥拉德丝恩标记Sheppard
[genres_text] => Actie /惊悚
[时间] => 96
)
)
解决方案
试试这个:
函数removeElementWithValue($数组$关键,$值){
的foreach($数组作为$子项= GT; $子阵列){
如果($子数组[$关键] == $值){
未设置($数组[$子键]);
}
}
返回$阵列;
}
然后,你会说它是这样的:
$阵列= removeElementWithValue($数组,年,2011年);
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
)
)
解决方案
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);
这篇关于基于价值的多维数组元素删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文