刪除陣列元素
阿新 • • 發佈:2018-11-22
1.unset(釋放給定的變數)
他除了可以刪除陣列中的一些元素,也可以刪除其他的一些變數
<?php
header('content-type:text/html;charset=utf-8');
$a=5;//或 $a='張三' $a = array('張三','李四','王五');
echo $a;
unset($a);//釋放變數(銷燬變數)
echo($a);
如果寫的程式碼是以上情況,會報語法錯誤。因為我們已經釋放了這個變數,它的記憶體已被收回,不在識別$a。如果$a是一個數組的話,這個陣列中的元素都會被釋放。
如果想要刪除陣列中的某個元素,也可以使用unset.
<?php header('content-type:text/html;charset=utf-8'); $a=array('張三','李四','王五');//如果陣列中有鍵 $a=array('a01'=>'張三','a02'=>'李四','a03'=>'王五'); 刪除的話這樣寫 unset($a['a02']); print_r($a); echo '<br>'; unset($a[1]);
這樣寫,結果為
Array ( [0] => 張三 [1] => 李四 [2] => 王五 )
Array ( [0] => 張三 [2] => 王五 )
2.array_splice
array array_splice ( array &$input
, int $offset
[, int $length
= 0 [, mixed $replacement
]] )
把 input
陣列中由 offset
和 length
指定的單元去掉,如果提供了 replacement
引數,則用其中的單元取代。
注意 input
中的數字鍵名不被保留。
offset(
如果 offset
為正,則從 input
陣列中該值指定的偏移量開始移除。如果 offset
為負,則從 input
末尾倒數該值指定的偏移量開始移除。)
length(
如果省略 length
,則移除陣列中從 offset
到結尾的所有部分。如果指定了 length
並且為正值,則移除這麼多單元。如果指定了 length
並且為負值,則移除從 offset
到陣列末尾倒數 length
為止中間所有的單元。)
array_splice和unset的區別
<?php header('content-type:text/html;charset=utf-8'); $a=array('張三','李四','王五'); print_r($a); echo '<br>'; unset($a[1]); print_r($a); //輸出結果為 王五下標還是2 //Array ( [0] => 張三 [1] => 李四 [2] => 王五 ) //Array ( [0] => 張三 [2] => 王五 ) 把unset($a[1])換成array_splice($a, 1,1); //輸出結果為 王五下標是1 //Array ( [0] => 張三 [1] => 李四 [2] => 王五 ) //Array ( [0] => 張三 [1] => 王五 )