首頁 >後端開發 >PHP問題 >php怎麼切割數組?內建函數介紹

php怎麼切割數組?內建函數介紹

PHPz
PHPz原創
2023-04-20 15:06:071448瀏覽

在PHP中,有時候我們需要將一個陣列按照一定的規則進行切割,例如按照某個字段的值進行切割,或者按照一定的長度進行切割等等。這時候,我們可以使用PHP中提供的一些函數來完成這個任務。本文將介紹如何使用PHP函數來切割陣列。

一、使用array_chunk()函數來切割數組

array_chunk()函數可以將一個陣列按照指定的長度進行切割,每個切割出來的部分保存在一個新的數組項裡面。具體的語法如下:

array array_chunk(array $array, int $size, bool $preserve_keys = false)

各個參數的意義如下:

  • $array: 要切割的陣列。
  • $size: 每個新的陣列項目包含的元素個數。
  • $preserve_keys: 是否保留原數組的鍵名。

例如,如果有一個陣列$nums=['1','2','3','4','5','6','7','8' ,'9'],我們想將這個陣列依照每個陣列項目包含3個元素來切割,可以使用以下程式碼:

$new_array = array_chunk($nums,3);
print_r($new_array);

輸出結果如下:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

二、使用array_slice ()函數來切割陣列

array_slice()函數可以依照指定的索引範圍來切割數組,傳回切割後的陣列。具體的語法如下:

array array_slice(array $array, int $offset, int $length = null, bool $preserve_keys = false)

各個參數的意義如下:

  • $array: 要切割的陣列。
  • $offset: 切割的開始索引。
  • $length: 切割的長度,如果不指定,將會切割到陣列結尾。
  • $preserve_keys: 是否保留原數組的鍵名。

例如,如果有一個陣列$nums=['1','2','3','4','5','6','7','8' ,'9'],我們想將這個陣列從第4個元素開始切割到第7個元素,可以使用以下程式碼:

$new_array = array_slice($nums,3,4);
print_r($new_array);

輸出結果如下:

Array
(
    [0] => 4
    [1] => 5
    [2] => 6
    [3] => 7
)

三、使用array_filter()函數來切割陣列

array_filter()函數可以將一個陣列依照指定的規則過濾,傳回符合條件的陣列。具體的語法如下:

array array_filter(array $array, callable $callback = null, int $flag = 0)

各個參數的意義如下:

  • $array: 要切割的陣列。
  • $callback: 過濾函數,如果指定了函數,函數將用於過濾數組元素。
  • $flag: 標識符,指定數組的鍵關係是否保持原樣。

例如,如果有一個陣列$nums=['1','2','3','4','5','6','7','8' ,'9'],我們想將這個陣列過濾出奇數元素,可以使用如下程式碼:

$new_array = array_filter($nums,function($var){return ($var%2==1);});
print_r($new_array);

輸出結果如下:

Array
(
    [0] => 1
    [2] => 3
    [4] => 5
    [6] => 7
    [8] => 9
)

四、使用foreach迴圈來切割陣列

除了使用PHP提供的函數來切割數組,我們也可以使用foreach迴圈來完成這個任務。具體的程式碼如下:

$nums=['1','2','3','4','5','6','7','8','9'];
$new_array=array();
$temp_array=array();
foreach ($nums as $key=>$value){
    $temp_array[]=$value;
    if(($key+1)%3==0||$key==count($nums)-1){
        $new_array[]=$temp_array;
        $temp_array=array();
    }
}
print_r($new_array);

輸出結果如下:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

以上就是使用PHP來切割陣列的四種方法,您可以根據實際情況選擇合適的方法來完成任務。

以上是php怎麼切割數組?內建函數介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn