当前位置: 首页 > 知识库问答 >
问题:

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

杜诚
2023-03-14

我要为这个发疯了。。。试图找出它几乎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...);
}

共有2个答案

丁英韶
2023-03-14

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

钱跃
2023-03-14

听起来你想多了。

$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;
}
 类似资料:
  • 问题内容: 大家好,我想将我的数组转换成其他数组类型,请帮助我。我正在用这个 和输出是 但是我想要这种格式的输出 那我应该用什么函数来获得这种格式的数组 问题答案: 更新17年2月 现在已经是2017年了,建议您在mysql_ *上使用PDO。安全得多,并且可以本地返回(如`TrexXx的答案所示)。

  • 问题内容: 当在PHP中对多维数组进行json_encode编码时,我只是通过命名一个数组而不是不命名它们来注意到一个不同的输出。例如: 给出多个json对象的单个数组 而只需为中间数组分配一个名称 创建一个带有多个json对象的单个json对象 为什么第一个选项不返回与第二个执行点相同的结果,并用“ 1”代替“ secondarray” 问题答案: 在JSON中,只有每个数组都有数字键,而对象则

  • 问题内容: 我有一个多维数组,正在尝试根据特定列中的值将它们分组。 我正在尝试按分组,但实际上我不会事先知道该等级。因此,并不是像我可以将其放在循环中然后说那样,因为我不知道这是级别键的最大值,并且坦率地说,即使我我不确定这也不是我需要这样做的方式。做了… 我希望产生的是: 问题答案: 你需要将它们按 级别 第一 使用 foreach 循环进入数组,检查级别是否与上一个项目相同,然后将其与该数组分

  • 问题内容: 编辑2:以下是基于DuffyMo响应的代码段,该段代码说明了如何解决使用System.arraycopy多维数组克隆的局限性。 [原始问题]在Java中(完全)克隆多维数组的简单方法是什么?该程序说明了我的问题。 运行上面的代码时,与我的意图相反,arrayMaster以及arrayChanges都发生了变化。考虑到我可以克隆arrayMaster的每个一维数组成员,因此尝试解决此问题

  • MATLAB中的多元数组MATLAB是下标多于两个的数组。可以调用带有两个以上变元的zeros, ones, rand, 或randn函数来产生。例如, R = randn(3,4,5); 生成一个3*4*5的数组,共有3x4x5 = 60个正态分布的随机元素。 三维数组可能表示三维物理数据,譬如房间的温度,取样于一个长方形网格。或者,可表示一个矩阵序列A(k),或依赖时间变化的矩阵A(t)。在

  • 问题内容: 例如: 一个) 与 b) 最初以为我会为了简化而选择a)。 我知道Java不会像C那样在内存中线性存储数组,但是这对我的程序有什么影响? 问题答案: 通常,在搜索答案时,最好的办法是查看如何将选择编译到JVM字节码中: 这被翻译成: 因此,如您所见,JVM已经知道我们在谈论多维数组。 进一步说明: 这被转换为(跳过循环): 因此,如您所见,多维数组在VM内部进行处理,无用指令不会产生开