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);