2010-01-30 47 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]);