如何将mysql结果集分布在4个数组的多维数组中

2024-02-10

我对这个简直要疯了……花了近 4 个小时试图弄清楚,但没有成功……

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

听起来你想太多了。

$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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将mysql结果集分布在4个数组的多维数组中 的相关文章