2010-03-18 66 views
0

可以說我有此數組:從PHP中的數組中刪除一個孩子?

$queue = array("orange", "banana", 'apple', 'watermelon'); 

如果我想刪除其中任何一個,比如我想刪除香蕉,怎麼辦呢?

+1

重複幾個這些http://stackoverflow.com/search?q=php+delete+from+array – 2010-03-18 15:42:49

+0

Sory,我是新來的。如果不需要,請刪除。我的錯。抱歉!! – 2010-03-18 15:45:52

+0

沒關係。但是,下一次,請務必做一點盡職調查並在創建新問題之前搜索您的問題。 – 2010-03-18 15:58:09

回答

1

你需要search該元素並用鑰匙將其刪除:

$pos = array_search('banana', $array); 
if ($pos !== false) { 
    unset($array[$pos]); 
} 

如果數組可以包含的價值超過一次,你應該使用array_keys()代替:

foreach (array_keys($array, 'banana') as $key) { 
    unset($array[$key]); 
} 
4
if (in_array('banana', $array)) 
{ 
    unset($array[array_search('banana', $array)]); 
} 
+1

它應該是'unset($ array [array_search('banana',$ array)]);'在第3行 – joar 2010-03-18 16:12:47

+0

糟糕。輸入速度太快。很好的接收。 +1 – 2010-03-18 16:16:27

0

array_filter

$array = array_filter($array, create_function('$v', 'return $v != \'value to remove\';')); 
+0

從PHP 5.3開始,你不需要使用create_function,你可以直接寫一個匿名的。
'function($ v){return $ v!='value to remove'; }' – 2010-03-18 16:19:54

+0

是的,但'create_function'也適用於舊版本 – knittl 2010-03-18 16:52:57