немного вопроса здесь. У меня есть массив, который содержит данные, которые были проанализированы с веб-сайта с использованием всех наших любимых функций php, таких как array_map.
Массив в настоящее время имеет глубину 3 подмассива.
Вот код, который я использую:
for ($tcid = 1; $tcid <= count($categories); $tcid++) {
$catHeader[$tcid] = $categories[$tcid][0];
$event[$i]['tickets'] = $categories;
unset($categories[$tcid][0]);
$categories[$tcid] = array_map('trim', $categories[$tcid]);
$categories[$tcid] = array_values($categories[$tcid]);
$ab = 0;
for ($b = 0; $b <= count($categories[$tcid]); $b++) {
if ($categories[$tcid][$b] == "" || !$categories[$tcid][$b] || $categories[$tcid][$b] == null) {
unset($categories[$tcid][$b]);
}
}
}
и массив выглядит примерно так ….
[1] => Array (
[data] => Array ( ...
)
[tickets] => Array (
[1] => Array (
[0] => xxx
[1] => etc
[3] => etc2
)
[2] => (
[0] => Std1
[1] => 10 / 10
[2] => £20.00
[3] => £200.00
[4] => Std2
[5] => 100 / 100
[6] => £13.00
[7] => £1,300.00
[8] => Std3
[9] => 10 / 320
[10] => £15.00
[11] => £150.00
)
)
)
Мой вопрос к вам сегодня: как же я могу разделить массив каждые 4 \ n или ключи массива, как они известны, и разбить каждый 4 на дополнительный под массив?
Таким образом, Std1, Std2, Std3 будут их собственным подмассивом со связанными с ним данными 2-го ключа заявок, но также будут делать это для каждого подмассива заявок, который имеет более 1 набора данных (набор данных состоит из 4 массивов). ключи).
Я пробовал все виды, но не могу заставить его работать.
Смотрите ниже, как я хочу, чтобы это выглядело.
[1] => Array (
[data] => Array ( ...
)
[tickets] => Array (
[1] => Array (
[0] => xxx
[1] => etc
[3] => etc2
)
[2] => (
[0] => Array (
[0] => Std1
[1] => 10 / 10
[2] => £20.00
[3] => £200.00
)
[1] => Array (
[0] => Std2
[1] => 100 / 100
[2] => £13.00
[3] => £1,300.00
)
[2] => Array (
[0] => Std3
[1] => 10 / 320
[2] => £15.00
[3] => £150.00
)
)
)
)
Спасибо
Как отмечено в комментариях, вам лучше всего обрабатывать массив по ссылкам, чтобы модифицировать его оригинальное содержимое где-то в ваших циклах
Если группы массивов, которые вы хотите разделить, находятся в группах 4
, вы могли бы array_chunk()
Это:
$array['tickets'][2] = array_chunk($array['tickets'][2], 4);
Других решений пока нет …