&$v){if($v==="字串"){unset($arr[$k]); }}」。"/> &$v){if($v==="字串"){unset($arr[$k]); }}」。">

首頁 >後端開發 >PHP問題 >php數組怎麼去掉某個字串

php數組怎麼去掉某個字串

青灯夜游
青灯夜游原創
2022-08-26 20:22:421896瀏覽

兩種方法:1、使用array_search()和array_splice()刪除,語法「array_splice($arr,array_search("字串",$arr,true),1);」。 2.利用foreach語句和unset()刪除,語法「foreach($arr as $k=>&$v){if($v==="字串"){unset($arr[$k]) ;}}」。

php數組怎麼去掉某個字串

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

方法1:使用array_search() array_splice()

#步驟1:使用array_search()函數在陣列中搜尋指定字串,並傳回對應的鍵名

array_search(value,array,strict)
##必要。規定在數組中搜尋的鍵值。 必要。規定被搜尋的陣列。 可選。如果該參數被設定為 TRUE,則函數在陣列中搜尋資料類型和值都一致的元素。可能的值:
<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,"12",12,25,24);
echo "原数组:";
var_dump($arr); 
$key=array_search("12",$arr,true);
echo "指定字符串&#39;12&#39;的键名为:".$key;

?>
參數 描述
#value
array
strict
    true
  • false - 預設
  • # 如果設定為 true,則在陣列中檢查給定值的類型,數字 5 和字串 5 是不同的(請參閱實例 2)。

php數組怎麼去掉某個字串

步驟2:使用array_splice()函數根據取得的鍵名刪除該元素

#array_splice() 函數從陣列中移除選定的元素(也可用新元素取代它)。

array_splice(array1,start,length,array2)

參數描述必要。規定數組。 #必要。數值。規定刪除元素的開始位置。    0 = 第一個元素。    如果該值設定為正數,則從數組中該值指定的偏移量開始移除。如果該值設定為負數,則從陣列末端倒數該值指定的偏移量開始移除。    -2 意指從陣列的倒數第二個元素開始。 可選。數值。規定被移除的元素個數,也是被傳回數組的長度。    如果該值設為正數,則移除該數量的元素。如果該值設定為負數,則移除從 start 到陣列末端倒數 length 為止中間所有的元素。如果該值未設置,則移除從 start 參數設定的位置開始直到陣列末端的所有元素。   可選。規定帶有要插入原始數組中元素的數組。如果只有一個元素,則可以設定為字串,不需要設定為陣列。
#array1
start
length
array2
說明:此函數會改變原始數組

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,"12",12,25,24);
echo "原数组:";
var_dump($arr); 
$key=array_search("12",$arr,true);
echo "指定字符串&#39;12&#39;的键名为:".$key;


array_splice($arr,$key,1);
echo "<br><br>删除指定字符串&#39;12&#39;后:";
var_dump($arr); 
?>

php數組怎麼去掉某個字串

方法2:利用foreach語句unset()函數

步驟1:使用foreach語句透過引用循環的方式遍歷數組

foreach ($array as $key => &$value){
    //循环体语句块;
}

遍歷給定的 $array 數組,在每次迴圈中會將目前陣列的值賦給 $value,鍵名賦給 $key。

一般情況下,使用foreach語句遍歷陣列時,是對陣列的備份進行操作,一般不會影響陣列本身。

想要透過循環來改變數組可以採用引用循環(在 $value 之前加上 &,這樣foreach語句會以引用賦值而不是拷貝一個值),那麼在循環體內對數組進行操作,就會影響數組本身。

步驟2:在循環體中,使用「===」運算子來尋找指定字串,並用unset()函數刪除該元素

if($value==="指定字符串"){
	unset($arr[$key]);
}

完整範例程式碼:

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,"25",12,25,"24");
echo "原数组:";
var_dump($arr); 
foreach ($arr as $key => &$value){
	if($value==="25"){
		unset($arr[$key]);
	}
}
echo "<br>删除指定字符串&#39;25&#39;后:";
var_dump($arr); 
?>

php數組怎麼去掉某個字串

可以看出,在最後一個元素前,有一個&,那是因為陣列最後一個元素的$value 引用在foreach 迴圈之後仍會保留。我們需要使用unset() 來銷毀。

unset($value); // 最后取消掉引用

php數組怎麼去掉某個字串

推薦學習:《

PHP影片教學

以上是php數組怎麼去掉某個字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn