0

我要为这个发疯了...试图弄清楚近4个小时但没有成功...

我正在尝试在 4 个数组的多维数组中获取 mysql 查询结果集。因此,如果结果集返回 8 条记录,则该数组将包含 2 条记录的 4 个数组。如果结果集返回 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...);
}
4

2 回答 2

3

听起来你想多了。

$i = 0;
// Create 4 subarrays (you could do this programmatically as well)
$array_r = array( array(), array(), array(), array() );
while ($stmt->fetch()) {
    array_push($array_r[$i], array( ... values ... ));
    $i = ($i + 1) % 4;
}
于 2013-08-05T05:44:56.260 回答
1

为什么不将结果集放入数组然后使用array_chunk

于 2013-08-05T05:44:55.047 回答