1. 程式人生 > >php陣列元素的刪除更新與填充

php陣列元素的刪除更新與填充

陣列函式__切割與填充
 

1.array_slice($arr, $offset, $length, $bool)
2.array_splice(&$arr, $offset, $length)
3.array_chunk($arr,$size,$bool)
4.array_pad($arr,$size,$value)

 

* 一、array_slice($arr, $offset, $length, $bool)
* 1.功能: 從陣列中的指定位置,返回指定數量的元素
* 2.引數: $arr(必),$offset(必)偏移量,$length(選)數量,$bool(選)是否保留鍵值關係
* 3.返回: 返回取出的元素組成的新陣列
* 4.場景: 從大陣列中擷取資料

$arr=[10,20,30,40,50,60];
//從索引0,即第一個元素開始,省略第二個引數,則是返回全部元素
echo '<pre>'.var_export(array_slice($arr,0 ),true).'<br>';

//從索引2開始,返回3個元素:0 => 30, 1 => 40, 2 => 50,
echo '<pre>'.var_export(array_slice($arr,2,3),true).'<br>';

//從索引2開始,length為負數,相當於剩下的總長度減2個元素:0 => 30, 1 => 40, 從返回的結果中刪除兩個元素
echo '<pre>'.var_export(array_slice($arr,2,-2),true).'<br>';

//功能與上面一樣,但返回的陣列索引保持不變:2 => 30, 3 => 40 , 保持結果中的鍵值對應關係,保留鍵名
echo '<pre>'.var_export(array_slice($arr,2,-2,true),true).'<br>';

 

* 二、array_splice(&$arr, $offset, $length,$replace)
* 1.功能:從陣列中移除或替換指定的元素,與array_slice()功能更強大
* 2.引數:$arr(必),$offset(必)偏移量,$length(選)數量,$replace(選)陣列或字串
* 3.返回: 返回一個包含有被移除單元的陣列

//僅移除:從索引2外移除2個元素,返回值是被移除元素組成的陣列,因為是引用傳參,原始陣列也被更新了
echo '被移除的元素是:'.var_export(array_splice($arr,2,2),true).'<hr>';
echo '原始陣列:'.var_export($arr,true).'<hr>';

//移除且替換
$arr = [10,20,30,40,50,60];  //陣列還原
echo '被移除的元素是:'.var_export(array_splice($arr,2,2,['php','mysql']),true);
echo '原始陣列:'.var_export($arr,true).'<hr>';

//如果單值替換可不用陣列傳參
$arr = [10,20,30,40,50,60];  //陣列還原
echo '被移除的元素是:'.var_export(array_splice($arr,2,1,'php'),true);
echo '原始陣列:'.var_export($arr,true).'<hr>';

//移除所有資料,此時原始陣列$arr已經為空
$arr = [10,20,30,40,50,60];  //陣列還原
echo '被移除的元素是:'.var_export(array_splice($arr,0 ),true).'<br>';
echo '原始陣列:'.empty($arr)?'陣列為空':'非空陣列' ;

 

* 三、array_chunk($arr,$size,$bool)
* 1.功能: 將大陣列分為指定大小的若干個小陣列
* 2.引數: $arr(必),$size(必),$bool(選)true保留鍵值關係
* 3.返回: 長度一致的小陣列(最後一個例外)
* 4.場景: 超大陣列分頁輸出

//$arr = [1,2,3,4,5,6,7,8,9,10];
//規則陣列可以使用range($start, $end, $step)生成指定步長與取值範圍的陣列
$arr2 = range(1,10);

//將陣列元素每3個為一組分成若干個小陣列
echo var_export(array_chunk($arr2,3),true).'<hr>';
echo var_export(array_chunk($arr2,3,true),true).'<hr>';

* 四、array_pad($arr,$size,$value)
* 1.功能:將陣列用指定的資料,填充到指定的長度
* 2.引數:$arr(必),$size(必)長度, $value(必)值
* 3.返回:被填充後的陣列的副本
* 4.場景: 填充預設值

$arr3 = [50,60,70];
//將陣列長度擴充套件到6位,剩下位置用99填充
echo '<pre>'.var_export(array_pad($arr3,6,99),true).'<br>';

//被填充的資料也可以是陣列
echo '<pre>'.var_export(array_pad($arr3,6,[88,99]),true).'<br>';

//長度可以為負數,指從尾部開始計數(注:陣列尾部都是從-1開始計數)
echo '<pre>'.var_export(array_pad($arr3,-5,'php'),true);