Php 是否根据元素的值从数组中删除元素?
我有一个带有键和值的规则数组Php 是否根据元素的值从数组中删除元素?,php,Php,我有一个带有键和值的规则数组 有没有一种简单的方法可以根据数组元素的值删除它,或者我必须对每个数组元素进行foreach循环并检查每个值才能删除它?您应该能够通过组合使用array\u search()和array\u splice()来完成此操作 未测试,但应适用于仅包含一次值的数组: $array = array("Apples", "strawberries", "pears"); $searchpos = array_search("strawberries", $array); if
有没有一种简单的方法可以根据数组元素的值删除它,或者我必须对每个数组元素进行foreach循环并检查每个值才能删除它?您应该能够通过组合使用
array\u search()
和array\u splice()
来完成此操作
未测试,但应适用于仅包含一次值的数组:
$array = array("Apples", "strawberries", "pears");
$searchpos = array_search("strawberries", $array);
if ($searchpos !== FALSE) {
array_splice($array, $searchpos, 1);
}
如果您的数组确实具有唯一值,则可以使用
array\u flip
array\u diff:
$array = array('a','b','c');
$array_to_remove = array('a');
$final_array = array_diff($array,$array_to_remove);
// array('b','c');
编辑:有关更多信息:
PHP 5.3从数组$a中删除“foo”的示例:
<?php
$a = array("foo", "bar");
$a = array_filter($a, function($v) { return $v != "foo"; });
?>
第二个参数可以是任何类型的PHP回调(例如,函数名为字符串)。如果搜索值不是常数,也可以使用函数生成函数。简短回答
unset($array[array\u search('value',$array)]代码>
解释
$key=array\u search('value',$array)代码>
unset($array[$key])代码>
如果数组中没有草莓,这段代码会做什么?如果草莓在输入数组中出现两次呢?大多数日子都不是我的日子!很好,对array_fliterAwesome不熟悉!谢谢