@fanhypermax

Как разделить массив?

Есть массив как разделить, до пустого значения в 1 массив, на три массива

Array
(
[0] => Запись 1.1
[1] => Запись 1.2
[2] => Запись 1.3

[3] =>

[4] => Запись 2.1
[5] => Запись 2.2
[6] => Запись 2.3

[7] =>

[8] => Запись 3.1
[9] => Запись 3.2
[10] => Запись 3.3

[11] =>

)
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
DevMan
@DevMan
самый примитивный способ - ideone.com/VoPELi
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
daager
@daager
Если их всегда по три, или по четыре и т.д. То можно сделать:
array_chunk(array_diff($array,['']),3)
удалит пустые элементы и разобьёт по 3 элемента.
Ответ написан
Вот простой пример (работает с целочисленными ключами):
$data = // ваш массив;
$arrays = []; // массив с результирующими массивами
$prevDelimiterIndex = 0;
foreach ($data as $index => $item) {
    if (!empty($item)) {
        continue;
    }

    // взять срез между предыдущим разделителем и следующим
    array_push($arrays, array_slice($data, $prevDelimiterIndex, $index));
    $prevDelimiterIndex = $index + 1;
}


Массив $arrays будет содержать список массивов.

Если кратко, идея следующая: найти индексы элементов-разделителей и по ним получить срезы элементов между этими индексами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы