В PHP разделение массива на более мелкие и более управляемые фрагменты — обычная задача. Если вам нужно обработать большие наборы данных или реализовать в приложении нумерацию страниц, разделение массива на более мелкие части может оказаться весьма полезным. В этой статье блога мы рассмотрим различные методы разделения массива на фрагменты с помощью PHP, а также приведем примеры кода.
Метод 1: array_chunk()
Функция array_chunk() — это встроенная функция PHP, которая позволяет разбивать массив на фрагменты заданного размера. Вот пример:
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$chunks = array_chunk($array, 3);
print_r($chunks);
Выход:
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
)
[3] => Array
(
[0] => 10
)
)
Метод 2: array_chunk() с save_keys
По умолчанию array_chunk() численно переиндексирует полученные фрагменты. Если вы хотите сохранить исходные ключи, вы можете передать значение trueв качестве третьего параметра. Вот пример:
$array = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$chunks = array_chunk($array, 2, true);
print_r($chunks);
Выход:
Array
(
[0] => Array
(
[a] => 1
[b] => 2
)
[1] => Array
(
[c] => 3
[d] => 4
)
[2] => Array
(
[e] => 5
)
)
Метод 3: разбивка на части вручную
Если вы предпочитаете более ручной подход, вы можете использовать комбинацию функций array_slice() и array_splice() для разделения массива на части. Вот пример:
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$chunkSize = 3;
$chunks = [];
while (count($array) > 0) {
$chunk = array_slice($array, 0, $chunkSize);
$chunks[] = $chunk;
$array = array_splice($array, $chunkSize);
}
print_r($chunks);
Выход:
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
)
[3] => Array
(
[0] => 10
)
)