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

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

PHPz
發布: 2023-04-20 15:38:56
原創
1467 人瀏覽過

在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板