PHP多维数组重组


PHP Multi-dimensional Array Reorganization

我有一个数据库和一个表,正在用HTML表单填充该表,并显示整个表和所有行的所有结果。如何通过while循环并按单元格而不是行重新组织整个数据库表。例如:

database table row1: c1 = dataA, c2 = dataB, c3 = dataC;
database table row2: c1 = dataD, c2 = dataE, c3 = dataF;

相反,我希望将所有单元格存储在自己的数组中:

arrayC1 = [dataA, dataD];
arrayC2 = [dataB, dataE];
arrayC3 = [dataC, dataF];

只要我在它们自己的数组中有所有类似的项目,我就可以随心所欲地显示它们。

不确定列结构会为您带来什么,但如果您有$rows:

PHP>=5.5.0必需,或使用array_column:的PHP实现

foreach(array_keys(reset($rows)) as $key) {
    $columns[$key] = array_column($rows, $key);
}

最简单的解决方案。若您有很多数据,$rows可以一个接一个地或分块地从数据库中提取,这将是可行的。

$result = array();
foreach ($rows as $row) {
  foreach($row as $key => $val) {
    $result[$key][] = $val;
  }
}