2010-01-30 84 views

回答

11

http://us3.php.net/array_filter

PHP 5.3例如从数组中删除 “foo” 的$ A:

<?php 
$a = array("foo", "bar"); 
$a = array_filter($a, function($v) { return $v != "foo"; }); 
?> 

第二个参数可以是任何种类的PHP回调(例如,功能作为一个字符串名称)。如果搜索值不恒定,您也可以使用函数生成函数。

+0

非常好,不熟悉array_fliter – Erik 2010-01-31 00:00:18

3

您应该可以使用array_search()array_splice()的组合。

未经检验的,但应该包含值只有一次阵列工作:

$array = array("Apples", "strawberries", "pears"); 
$searchpos = array_search("strawberries", $array); 
if ($searchpos !== FALSE) { 
    array_splice($array, $searchpos, 1); 
} 
+0

的,什么是这个代码如果数组不包含任何数据草莓? – 2010-01-30 22:31:55

+0

好点,谢谢。修改代码来检查。 – 2010-01-30 22:34:01

+0

以及如果草莓在输入数组中两次? – 2010-01-30 22:36:49

0

如果阵列确实有独特的价值,你可以用array_flip

25

和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

2

简答unset($array[array_search('value', $array)]);其价值

说明

  1. 查找键:$key = array_search('value', $array);
  2. 删除数组元素的关键:unset($array[$key]);