如何将结果集行作为索引子数组添加到结果数组?
How to add resultset rows to a result array as indexed subarrays?
我有一个包含两列数据和几行的 mysqli 结果集。我想将结果集的每一行作为索引子数组存储在我的结果数组中(特别是 $rows['data']
)。
这是我当前的代码:
$query = mysqli_query($con,"SELECT Energy_UTC,Total_watts FROM combined_readings");
$rows = array();
$rows['name'] = 'Total_watts';
while ($tmp = mysqli_fetch_array($query)) {
$rows['data'][] = $tmp['Energy_UTC'];
$rows['data'][] = $tmp['Total_watts'];
}
这会生成如下所示的数组:
{"name":"Total_watts","data":[1519334969,259,1519335149,246,1519335329,589,1519335509,589,1519335689,341,1519335869,341,1519336050,523,1519336230,662,1519336410,662,1519336590,469]}
但我需要结果是一个如下所示的数组:
{"name":"Total_watts","data":[1519334969,259],[1519335149,246],[1519335329,589],[1519335509,589],[1519335689,341],[1519335869,341],[1519336050,523],[1519336230,662],[1519336410,662],[1519336590,469]}
有人可以建议更改 PHP while 循环以生成此输出吗?
您只需要调整语法以将元素放在同一个子数组中。
while($tmp = mysqli_fetch_array($query)) {
$rows['data'][] = [$tmp['Energy_UTC'],$tmp['Total_watts']];
}
p.s。此外,您可以使用 mysqli_fetch_assoc()
因为您只访问关联键。或者更好的是,使用 mysqli_fetch_row()
并将该行分配给结果数组。
都烤好了,看起来像这样:
if(!$result=mysqli_query($con,"SELECT Energy_UTC,Total_watts FROM combined_readings")){
// handle the query error
}else{
$rows=['name'=>'Total_watts'];
while($row=mysqli_fetch_row($result)){
$rows['data'][]=$row; // this will store subarrays like: [1519334969,259]
}
}
我有一个包含两列数据和几行的 mysqli 结果集。我想将结果集的每一行作为索引子数组存储在我的结果数组中(特别是 $rows['data']
)。
这是我当前的代码:
$query = mysqli_query($con,"SELECT Energy_UTC,Total_watts FROM combined_readings");
$rows = array();
$rows['name'] = 'Total_watts';
while ($tmp = mysqli_fetch_array($query)) {
$rows['data'][] = $tmp['Energy_UTC'];
$rows['data'][] = $tmp['Total_watts'];
}
这会生成如下所示的数组:
{"name":"Total_watts","data":[1519334969,259,1519335149,246,1519335329,589,1519335509,589,1519335689,341,1519335869,341,1519336050,523,1519336230,662,1519336410,662,1519336590,469]}
但我需要结果是一个如下所示的数组:
{"name":"Total_watts","data":[1519334969,259],[1519335149,246],[1519335329,589],[1519335509,589],[1519335689,341],[1519335869,341],[1519336050,523],[1519336230,662],[1519336410,662],[1519336590,469]}
有人可以建议更改 PHP while 循环以生成此输出吗?
您只需要调整语法以将元素放在同一个子数组中。
while($tmp = mysqli_fetch_array($query)) {
$rows['data'][] = [$tmp['Energy_UTC'],$tmp['Total_watts']];
}
p.s。此外,您可以使用 mysqli_fetch_assoc()
因为您只访问关联键。或者更好的是,使用 mysqli_fetch_row()
并将该行分配给结果数组。
都烤好了,看起来像这样:
if(!$result=mysqli_query($con,"SELECT Energy_UTC,Total_watts FROM combined_readings")){
// handle the query error
}else{
$rows=['name'=>'Total_watts'];
while($row=mysqli_fetch_row($result)){
$rows['data'][]=$row; // this will store subarrays like: [1519334969,259]
}
}