[英]Remove string from PHP array?
是否可以在不知道索引的情況下從PHP數組中刪除字符串(參見下面的示例)?
例:
array = array("string1", "string2", "string3", "string4", "string5");
我需要刪除string3。
$index = array_search('string3',$array);
if($index !== FALSE){
unset($array[$index]);
}
如果您認為您的值將不止一次嘗試使用帶有搜索值的array_keys來獲取所有索引。 你可能想確定一下
編輯:
請注意,使用unset
時索引保持不變。 如果這是一個問題,有一個很好的答案在這里 ,說明如何做到這一點使用array_splice
。
你可以這樣做。
$arr = array("string1", "string2", "string3", "string4", "string5");
$new_arr=array();
foreach($arr as $value)
{
if($value=="string3")
{
continue;
}
else
{
$new_arr[]=$value;
}
}
print_r($new_arr);
使用array_search
和array_splice
的組合。
function array_remove(&$array, $item){
$index = array_search($item, $array);
if($index === false)
return false;
array_splice($array, $index, 1);
return true;
}
這可能不是最快的方法,但它是一個簡短而整齊的代碼行:
$array = array_diff($array, array("string3"))
或者如果您使用的是PHP> 5.4.0或更高版本:
$array = array_diff($array, ["string3"])
它取決於陣列的大小,並且有多種選擇。
如果它通常很小,array_diff可能是最快的一致解決方案,正如Jorge所說。
另一種稍大的套裝解決方案:
$data = array_flip($data);
unset($data[$item2remove]);
$data = array_flip($data);
但是,如果你沒有重復的項目,這是唯一的好處。 根據您的工作量,保證項目的唯一性可能也是有利的。
你也可以這樣試試。
$array = ["string1", "string2", "string3", "string4", "string5"];
$key = array_search('string3',$array);
unset($array[$key]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.