php 刪除一維數組中某一個值元素的操作方法

韦小宝
發布: 2023-03-19 20:22:02
原創
3519 人瀏覽過

下面小編就為大家分享一篇php 刪除一維數組中某一個值元素的操作方法,具有很好的參考和學習PHP的價值,希望對大家有所幫助。對PHP感興趣的一起跟隨小編過來看看吧

1. 自己寫for循環

從array裡去掉$tmp這個元素的值

<?php
$tmp = &#39;324&#39;;
$arr = array(
&#39;0&#39; => &#39;321&#39;,
&#39;1&#39; => &#39;322&#39;,
&#39;2&#39; => &#39;323&#39;,
&#39;3&#39; => &#39;324&#39;,
&#39;4&#39; => &#39;325&#39;,
&#39;5&#39; => &#39;326&#39;,
);
登入後複製

程式碼

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
print_r($arr);
?>
登入後複製

#此時

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [4] => 325
 [5] => 326
)
登入後複製

要重設索引,再加上一句

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
$arr = array_values($arr);
print_r($arr);
?>
登入後複製

此時結果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)
登入後複製
登入後複製
登入後複製
登入後複製

#array_merge()也可以實現相同的效果

#
foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
$arr = array_merge($arr);
print_r($arr);
?>
登入後複製

此時結果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)
登入後複製
登入後複製
登入後複製
登入後複製

2.優先使用php自帶函數,因為那是用C實現的,比自己寫效率高。

使用array_searcharray_splice,這裡array_splice自動實作重設序列值。

$key=array_search($tmp ,$arr);
array_splice($arr,$key,1);
var_dump($arr);
登入後複製

此時結果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)
登入後複製
登入後複製
登入後複製
登入後複製

最佳實踐

$arr = array_merge(array_diff($arr, array($tmp)));
var_dump($arr);
登入後複製

結果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)
登入後複製
登入後複製
登入後複製
登入後複製

這裡,如果陣列元素是複雜資料結構,同樣能夠實現比較。當然數據本身仍然是一維的。

上面的範例中$tmp是一個值,如果$tmp是一個陣列或其他複雜資料結構,從$array中刪除所有$tmp包含的元素,上面的方法同樣有效

$arr = array_merge(array_diff($arr, $tmp));
var_dump($arr);
登入後複製

以上這篇php 刪除一維數組中某一個值元素的操作方法就是小編分享給大家的全部內容了,希望能給大家一個參考!

相關推薦:

php刪除數組中的最後一個元素的函數array_pop()

php刪除由addslashes()函數新增的反斜線的函數stripslashes()

#php刪除字串尾部的空白字元函數chop()

以上是php 刪除一維數組中某一個值元素的操作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板