PHP實現刪除數組中的特定元素


方法1:

1 <?php
2 $arr1 = array(1,3, 5,7,8);
3 $key = array_search(3, $arr1);
4 if ($key !== false)
5     array_splice($arr1, $key, 1);
6 var_dump($arr1);
7 ?>

返回結果:array(4) { [0]=> int(1) [1]=> int(5) [2]=> int(7) [3]=> int(8) }

PHP array_splice() 函數 
array_splice() 函數與 array_slice() 函數類似,選擇數組中的一系列元素,但不返回,而是刪除它們並用其它值代替。如果提供了第四個參數,則之前選中的那些元素將被第四個參數指定的數組取代。 
最后生成的數組將會返回。 
語法:array_splice(array,offset,length,array) 
array:必需。規定數組。 
offset:必需。數值。如果 offset 為正,則從輸入數組中該值指定的偏移量開始移除。如果 offset 為負,則從輸入數組末尾倒數該值指定的偏移量開始移除。 
length:可選。數值。如果省略該參數,則移除數組中從 offset 到 結尾的所有部分。如果指定了 length 並且為正值,則移除這么多元素。如果指定了 length 且為負值,則移除從 offset 到數組末尾倒數 length 為止中間所有的元素。 
array:被移除的元素由此數組中的元素替代。如果沒有移除任何值,則此數組中的元素將插入到指定位置。 
如果函數沒有刪除任何元素 (length=0),則替代數組將從 start 參數的位置插入。 

 

注:W3school array_splice() 鏈接:http://www.w3school.com.cn/php/func_array_splice.asp

 

方法2:

1 <?php
2 $arr2 = array(1,3, 5,7,8);
3 foreach ($arr2 as $key=>$value)
4 {
5     if ($value === 3)
6         unset($arr2[$key]);
7 }
8 var_dump($arr2);
9 ?>

返回結果:array(4) { [0]=> int(1) [2]=> int(5) [3]=> int(7) [4]=> int(8) }

總結:可以看到使用array_splice()刪除特定值和使用unset刪除特定值是有區別的。

array_splice()函數刪除的話,數組的索引值也變化了,並且重新建立了索引。

unset()函數刪除的話,數組的索引值沒有變化,就是說這種方法的最大缺點是沒有重建數組索引。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM