php unset和array_splice區別

平時在設計程序時,經常要應用PHP刪除數組元素的函數有unset和array_splice,這兩個函數的運行有何差異呢?

用unset,有個缺陷.如$a是一個數組:
< ?php
$a=array("red", "green", "blue", "yellow");
count($a); //得到4  
unset($a[1]); //刪除第二個元素
count($a); //得到3    
echo $a[2]; //數組中僅有三個元素,本想得到最後一個元素,但卻得到blue,  
echo $a[1]; //無值  
?>    
用函數array_splice().
<?php
$a=array("red", "green", "blue", "yellow");
count ($a); //得到4  
array_splice($a,1,1); //刪除第二個元素
count ($a); //得到3  
echo $a[2]; //得到yellow    
echo $a[1]; //得到blue    
?>  
把這個程序和前一個相對比,就可以看到,array_splice()不僅刪除了元素,還把元素重排了,這樣在數組各元素中間就不會有空值(如前例中的$a[1]).
array_splice()其實是替換數組元素的函數,但如果不加替換值就簡單的刪除元素.下面是array_splice()的用法: array array_splice (array input, int offset [, int length [, array replacement]])
參數input是要操作的數組;offset是從第幾個元素開始,爲正時從第一個元素開始數,爲負時從最後一個元素開始數;length爲要替換/PHP刪除數組元素的個數,省略時就從offset開始到數組結束,也是可正可負,原理和offset一樣;relacement爲要替換的值.

 

 

轉載來源:http://bbs.zhongya.cn/read.php?tid-5998.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章