Массив должен быть организован таким образом, чтобы вместо того, чтобы иметь каждое значение в массиве, значения массива массивов со значениями данных и каждый из этих вложенных массивов должны иметь максимальное число значений.PHP реорганизация массива
Так он должен начать с этого:
$data = array(
0 => 'Data 1',
1 => 'Data 2',
2 => 'Data 3',
3 => 'Data 4',
4 => 'Data 5',
5 => 'Data 6',
);
, а затем, учитывая, что $max = 3;
, массив должен стать этим:
$data = array(
0 => array(
0 => 'Data 1',
1 => 'Data 2',
2 => 'Data 3',
),
1 => array(
0 => 'Data 4',
1 => 'Data 5',
2 => 'Data 6',
),
);
Я чувствую, что я близко, но я продолжаю проигранного четвертое значение данных, когда мой макс установлен на 3.
$max_col = 3;
$current_row = 0;
$current_col = 0;
foreach ($data_values as $val) {
if ($current_col < $max_col) {
$new_data[$current_row][$current_col] = $val;
$current_col++;
} else {
$current_col = 0;
$current_row++;
$new_data[$current_row][$current_col] = $val;
}
}
Что я в итоге получим:
$data = array(
0 => array(
0 => 'Data 1',
1 => 'Data 2',
2 => 'Data 3',
),
1 => array(
0 => 'Data 5',
1 => 'Data 6',
),
);
Посмотрите на [array_chunk()] (http://www.php.net/manual/en/function.array- chunk.php) –
Не изобретайте велосипед, используйте ответ Джонатана. Это делает код чистым и потому что он является родной функцией, он работает намного быстрее, чем код пользователя. – axiac