Я схожу с ума от этого … пытаясь понять это почти 4 часа без успеха …
Я пытаюсь получить набор результатов запроса mysql в многомерном массиве из 4 массивов. Поэтому, если результирующий набор возвращает 8 записей, массив будет содержать 4 массива из 2 записей. Если результирующий набор возвращает 20 записей, массив будет содержать 4 массива из 5 записей и т. Д. Это легкая часть …
У меня возникают проблемы с тем, что результирующий набор не может быть распределен равномерно в 4 массивах. Например, если результирующий набор возвращает 14 записей, тогда первый массив содержит 4 записи, второй массив содержит 4 записи, третий массив 3 записи и четвертый массив 3 записи …
Вот что я закодировал до сих пор:
... $num_rows = $stmt->num_rows; //number of records returned by the result set $arrays = 4; //distributed in 4 arrays $per_array = (int)($num_rows / $arrays); //minimum per array $remainder = $num_rows % $per_array; //the remainder $array_r = array(); $i = 1; $col = 1; while ($stmt->fetch()) { if ($i <= $per_array) { $i++; } else { $i = 1; $col++; } $array_r[$col][] = array(...values from result set...); }