關于php array_splice的用法以前有講過了,今天主要是詳細的講一下這個函數在應用中的一些詳細的具體的情況,有需要的朋友可以參考一下.
array_splice定義和用法
說明:array array_splice ( array &$input , int $offset [, int $length [, array $ replacement ]] )
array_splice() 把 input 數組中由 offset 和 length 指定的單元去掉,如果提供了 replacement 參數,則用 replacement 數組中的單元取代,返回一個包含有被移除單元的數組,注意 input 中的數字鍵名不被保留.
如果 offset 為正,則從 input 數組中該值指定的偏移量開始移除,如果 offset 為負,則從 input 末尾倒數該值指定的偏移量開始移除.
如果省略 length,則移除數組中從 offset 到結尾的所有部分,如果指定了 length 并且為正值,則移除這么多單元,如果指定了 length 并且為負值,則移除從 offset 到數組末尾倒數 length 為止中間所有的單元,小竅門:當給出了 replacement 時要移除從 offset 到數組末尾所有單元時,用 count($input) 作為 length.
如果給出了 replacement 數組,則被移除的單元被此數組中的單元替代,如果 offset 和 length 的組合結果是不會移除任何值,則 replacement 數組中的單元將被插入到 offset 指定的位置,注意替換數組中的鍵名不保留,如果用來替換的值只是一個單元,那么不需要給它加上 array(),除非該單元本身就是一個數組.
以下表達式以同樣方式修改了 $input:array_splice() 等價表達式 array_push($input,$x,$y)array_splice($input,代碼如下:
- count($input), 0, array($x, $y))
- array_pop($input) array_splice($input, -1)
- array_shift($input) array_splice($input, 0, 1)
- array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))
- $input[$x] = $y // 對于鍵名和偏移量等值的數組 array_splice($input, $x, 1, $y)
返回一個包含被移除單元的數組.
例子1,代碼如下:
- <?php
- $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
- $a2=array(0=>"Tiger",1=>"Lion");
- array_splice($a1,0,2,$a2);
- print_r($a1);
- ?>
- //輸出:
- //Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
例子2,與例子 1 相同,但是輸出返回的數組,代碼如下:
- <?php
- $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
- $a2=array(0=>"Tiger",1=>"Lion");
- print_r(array_splice($a1,0,2,$a2));
- //開源代碼Vevb.com
- ?>
- //輸出:
- Array ( [0] => Dog [1] => Cat )例子 3
length 參數設置為 0,代碼如下:
- <?php
- $a1=array(0=>"Dog",1=>"Cat");
- $a2=array(0=>"Tiger",1=>"Lion");
- array_splice($a1,1,0,$a2);
- print_r($a1);
- ?>
- //輸出:
- //Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )
應用實例,代碼如下:
- $input1 = array("red", "green", "blue", "yellow");
- $input2 = array_splice($input1, 2);
- //打印剩下的
- print_r($input1);
- //打印被移走的
- print_r($input2);
因為這個函數的第一個參數是地址引用,返回值是被移走的部份,如果你只是想看剩下的,這樣寫就可以了,代碼如下:
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, 2);
- print_r($input);
我把手冊的例子加了一個說明:
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, 2);
- //從第2個之后開始選,到剩下的全部,選中的移走。
- //也就是 "blue", "yellow" 被選中
- // $input is now array("red", "green")
- array_splice($input, 1, -1);
- //從第1個之后開始選,到剩下的全部倒回來一個,選中的移走。
- //也就是 "green", "blue",被選中
- // $input is now array("red", "yellow")
- array_splice($input, 1, count($input), "orange");
- //從第1個之后開始選,到剩下的全部,選中的移走,在當前指針位置加一個新值。
- //也就是 "green", "blue", "yellow" 被選中
- // $input is now array("red", "orange")
- array_splice($input, -1, 1, array("black", "maroon"));
- //從最后1個之前開始選,往下選1個,選中的移走,在當前指針位置加進一個數組。
- //也就是 "yellow" 被選中
- // $input is now array("red", "green","blue", "black", "maroon")
- array_splice($input, 3, 0, "purple");
- //從第3個之后開始選,一個都不選,在當前指針位置插入新值。
- //位置就在 "red", "green", "blue" 和 "yellow" 之間
- // $input is now array("red", "green", "blue", "purple", "yellow");
新聞熱點
疑難解答