如何删除数组中元素为某一值的所有项(这些值可能重复)
例如,如何把下面数组中值为"苹果"的所有项删除.
$array1 = array(1 => "苹果", 2 => "菠萝", 4 => "苹果",3 => "香蕉", 4 => "芭乐",5 => "苹果",6 => "苹果");
我想得到的结果:
$array1 = array(1 => "菠萝", 2 => "香蕉", 3 => "芭乐");
第1个回答 推荐于2016-08-30
我感觉苹果应该保留!那就直接
array_flip(array_flip($array1));
如果苹果不保留,那就
$search_keys = array_keys($array1, "苹果");
foreach($search_keys as $key) {
unset($array1[$key]);
}
print_r($array1);
unset有一个不好的地方那就是他不能重新排序他的索引,那就重新写一下,设定索引吧!
再来高人写出好的方法。。。。 等待中!!!!!本回答被提问者采纳
array_flip(array_flip($array1));
如果苹果不保留,那就
$search_keys = array_keys($array1, "苹果");
foreach($search_keys as $key) {
unset($array1[$key]);
}
print_r($array1);
unset有一个不好的地方那就是他不能重新排序他的索引,那就重新写一下,设定索引吧!
再来高人写出好的方法。。。。 等待中!!!!!本回答被提问者采纳
第2个回答 2010-03-09
两种方法,一种是循环,像楼上说的;另种方法:
$array1 = array(1 => "苹果", 2 => "菠萝", 4 => "苹果",3 => "香蕉", 4 => "芭乐", 5 => "苹果",6 => "苹果");
$array2 = array(1=>"苹果");
$arr = array_diff($array1, $array2);
print_r($arr);
结果:Array ( [2] => 菠萝 [4] => 芭乐 [3] => 香蕉 )
$array1 = array(1 => "苹果", 2 => "菠萝", 4 => "苹果",3 => "香蕉", 4 => "芭乐", 5 => "苹果",6 => "苹果");
$array2 = array(1=>"苹果");
$arr = array_diff($array1, $array2);
print_r($arr);
结果:Array ( [2] => 菠萝 [4] => 芭乐 [3] => 香蕉 )
参考资料: