PHP array_splice():刪除陣列元素

2020-07-16 10:05:28
PHP array_splice() 函數用來刪除陣列的一部分元素;你可以直接刪除,也可以用其它值來替代。

array_splice() 語法如下:

array array_splice ( array &$arr, int $start [, int $length = 0 [, mixed $replacement ]] )

引數說明:
  • arr 表示一個陣列。
  • start 表示開始刪除的位置(下標):
    • 如果 start 為正數,則從前往後刪除。
    • 如果 start 為負數,則從距離 arr 末端 -start 的位置開始,從後往前刪除。例如 -2 意味著從陣列的倒數第二個元素開始。
  • length 是可選引數,表示刪除的元素個數:
    • 如果 length 為正數,那麼就表示刪除 length 個元素;
    • 如果 length 為負數,那麼將刪除從 start 開始,到陣列末尾倒數 length 為止的所有元素;
    • 如果省略,那麼將刪除從 start 開始,一直到陣列末尾的所有元素。
  • replacement 是可選引數,表示要替換的值。如果 replacement 有多個值就需要設定為陣列,如果只有一個值可以不設定為陣列。

如果 start 和 length 組合的結果是不會刪除任何元素,那麼 replacement 所包含的值將被插入 start 指定的位置。

注意,使用 replacement 替換陣列元素不會保留原來的鍵名。

返回值:返回由被刪除的元素組成的陣列。

函數的使用範例如下:
<?php
$arr = array("red", "green", "blue", "yellow");
array_splice($arr, 2);
print_r($arr);
//$arr 現在變成 array("red", "green")

$arr = array("red", "green", "blue", "yellow");
array_splice($arr, 1, -1);
print_r($arr);
//$arr 現在變成 array("red", "yellow")

$arr = array("red", "green", "blue", "yellow");
array_splice($arr, 1, count($arr), "orange");
print_r($arr);
//$arr 現在變成 array("red", "orange")

$arr = array("red", "green", "blue", "yellow");
array_splice($arr, -1, 1, array("black", "maroon"));
print_r($arr);
//$input 現在變成 array("red", "green", "blue", "black", "maroon")

$arr = array("red", "green", "blue", "yellow");
array_splice($arr, 3, 0, "purple");
print_r($arr);
//$arr 現在變成 array("red", "green", "blue", "purple", "yellow");
?>
執行以上程式的輸出結果如下:

Array
(
    [0] => red
    [1] => green
)
Array
(
    [0] => red
    [1] => yellow
)
Array
(
    [0] => red
    [1] => orange
)
Array
(
    [0] => red
    [1] => green
    [2] => blue
    [3] => black
    [4] => maroon
)
Array
(
    [0] => red
    [1] => green
    [2] => blue
    [3] => purple
    [4] => yellow
)