从查询的动态列数制作PHP数组

时间:2018-09-06 17:21:48

标签: php mysql arrays dynamic

我有一个查询,它将MySQL表中一系列ID的项目行转换为列,因此结果具有可变的列数(VC)。非动态的唯一项目是ID,FirstName,LastName。我知道变量项(n)的数量,这是查询的一部分。

我要做的是在PHP中进行循环,同时将这些变量列添加到PHP数组中。

类似这样的东西:

$someArray = [];

while($row = $result -> fetch_assoc()) {

array_push($someArray,[ 

  'ID' => $row['EmployeeID'],
  'FName' => $row['FName'],
  'MName' => $row['MName'],
  'LName' => $row['LName'],

-------Loop here --------
  'VC1' => $row['VC1'],
  'VC2' => $row['VC2'],
  'VC3' => $row['VC3'],
  'VC4' => $row['VC4'],
  'VC5' => $row['VC5'],
  ..............
  'VCn' => $row['VCn']
-------------------------

]);
}

我尝试使用PHP循环,但无法弄清楚该怎么做。 感谢您的任何提前帮助。

1 个答案:

答案 0 :(得分:2)

如果您知道n,则可以使用for循环:

for($i = 1;$i <= $n; $i++) {
    $key = "VC" .$i;
    $someArray[$key] = $row[$key];
}

但是,如果将整个数组压入其中,则最好修改SQL查询并执行以下操作:

while($row = $result -> fetch_assoc())
    array_push($someArray, $row)