php刪除一維數組的值的方法:1、透過自訂的for循環刪除一維數組的值;2、使用「array_search」和「array_splice」實現刪除。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php 刪除一維數組中某一個值元素的操作方法
1. 自己寫for迴圈
#從array裡去掉$tmp這個元素的值
<?php $tmp = '324'; $arr = array( '0' => '321', '1' => '322', '2' => '323', '3' => '324', '4' => '325', '5' => '326', );
#程式碼
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_search和array_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怎麼刪除一維數組的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!