1. 程式人生 > >刪除陣列元素

刪除陣列元素

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] => 王五 )