0

私はこれに夢中になっています...ほぼ4時間それを理解しようとしていますが、成功していません...

4 つの配列の多次元配列で mysql クエリの結果セットをフェッチしようとしています。したがって、結果セットが 8 つのレコードを返す場合、配列には 2 つのレコードの 4 つの配列が含まれます。結果セットが 20 レコードを返す場合、配列には 5 つのレコードの 4 つの配列が含まれます。これは簡単な部分です...

私が問題を抱えているのは、結果セットを 4 つの配列に均等に分散できない場合です。たとえば、結果セットが 14 レコードを返す場合、最初の配列には 4 つのレコードが含まれ、2 番目の配列には 4 つのレコードが含まれ、3 番目の配列には 3 つのレコードが含まれ、4 番目の配列には 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...);
}
4

2 に答える 2