【发布时间】:2010-01-30 22:17:35
【问题描述】:
我有一个包含键和值的常规数组。
有没有一种简单的方法可以根据数组元素的值来删除它,还是我必须对其进行 foreach 循环并检查每个值以将其删除?
【问题讨论】:
标签: php
我有一个包含键和值的常规数组。
有没有一种简单的方法可以根据数组元素的值来删除它,还是我必须对其进行 foreach 循环并检查每个值以将其删除?
【问题讨论】:
标签: php
array_diff:
$array = array('a','b','c');
$array_to_remove = array('a');
$final_array = array_diff($array,$array_to_remove);
// array('b','c');
编辑:更多信息:http://www.php.net/array_diff
【讨论】:
http://us3.php.net/array_filter
PHP 5.3 示例从数组 $a 中删除“foo”:
<?php
$a = array("foo", "bar");
$a = array_filter($a, function($v) { return $v != "foo"; });
?>
第二个参数可以是任何类型的 PHP 回调(例如,作为字符串的函数名称)。如果搜索值不是常数,您也可以使用函数生成函数。
【讨论】:
您应该能够通过 array_search() 和 array_splice() 的组合来做到这一点。
未经测试,但应该适用于只包含一次值的数组:
$array = array("Apples", "strawberries", "pears");
$searchpos = array_search("strawberries", $array);
if ($searchpos !== FALSE) {
array_splice($array, $searchpos, 1);
}
【讨论】:
简答unset($array[array_search('value', $array)]);
说明
$key = array_search('value', $array);
unset($array[$key]);
【讨论】:
如果您的数组确实有唯一值,您可以使用 array_flip 翻转它们
【讨论】: