PHP array_slice():擷取陣列的一部分

2020-07-16 10:05:27
PHP array_slice() 函數用來擷取陣列,也就是從陣列中提取出一個片段,語法如下:

array array_slice ( array $arr , int $start [, int $length = NULL [, bool $preserve_keys = false ]] )

引數說明:
  • arr 表示要擷取的陣列。
  • start 表示開始擷取的位置(下標):
    • 如果 start 為正數,則從前往後擷取。
    • 如果 start 為負數,則從距離 arr 末端 -start 的位置開始,從後往前擷取。例如 -2 意味著從陣列的倒數第二個元素開始。
  • length 是可選引數,表示擷取長度:
    • 如果 length 為正數,那麼表示擷取的元素個數;
    • 如果 length 為負數,那麼擷取的片段將終止在距離陣列末端 length 的位置;
    • 如果省略,那麼將從 start 位置開始,一直擷取到陣列的末尾。
  • preserve_keys 是可選引數,規定是否保留原來的鍵名,預設為 false,也即不保留;如果設定為 true,將保留原有的鍵名。

返回值:返回擷取後的子陣列。

使用範例如下:
<?php
$info = array(2=>"C語言中文網", 4=>"http://c.biancheng.net/", "PHP", "JavaScript", "Java", "Python", "C++");
//擷取得到 ["PHP", "JavaScript", "Java", "Python", "C++"]
print_r( array_slice($info, 2) );
//擷取得到 ["JavaScript", "Java", "Python"]
print_r( array_slice($info, -2, 3) );
//擷取得到 ["C語言中文網", "http://c.biancheng.net/", "PHP"]
print_r( array_slice($info, 0, 3) );
//保留陣列的原始鍵名
print_r( array_slice($info, 0, 3, true) );
?>
執行以上程式的輸出結果為:

Array
(
    [0] => PHP
    [1] => JavaScript
    [2] => Java
    [3] => Python
    [4] => C++
)
Array
(
    [0] => Python
    [1] => C++
)
Array
(
    [0] => C語言中文網
    [1] => http://c.biancheng.net/
    [2] => PHP
)
Array
(
    [2] => C語言中文網
    [4] => http://c.biancheng.net/
    [5] => PHP
)