您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)利用php中刪除數(shù)組中某一個值的元素,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
1. 自己寫for循環(huán)
從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); ?>
此時結(jié)果
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
array_merge()也可以實現(xiàn)同樣的效果
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } $arr = array_merge($arr); print_r($arr); ?>
此時結(jié)果
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
2.優(yōu)先使用php自帶函數(shù),因為那是用C實現(xiàn)的,比自己寫效率高。
使用array_search和array_splice,這里array_splice自動實現(xiàn)重置序列值。
$key=array_search($tmp ,$arr); array_splice($arr,$key,1); var_dump($arr);
此時結(jié)果
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
最佳實踐
$arr = array_merge(array_diff($arr, array($tmp))); var_dump($arr);
結(jié)果
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
這里,如果數(shù)組元素是復(fù)雜數(shù)據(jù)結(jié)構(gòu),同樣能夠?qū)崿F(xiàn)比較。當(dāng)然數(shù)據(jù)本身仍然是一維的。
上面的例子中$tmp是一個值,如果$tmp是一個數(shù)組或者其他復(fù)雜數(shù)據(jù)結(jié)構(gòu),從$array中刪除所有$tmp包含的元素,上面的方法同樣有效
$arr = array_merge(array_diff($arr, $tmp)); var_dump($arr);
看完上述內(nèi)容,你們對利用php中刪除數(shù)組中某一個值的元素有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。