PHP 在 For 循环中创建数组
PHP Creating an array inside a For Loop
可能的话寻求帮助。
$pilotsids 是一个 ID 数组。
merged 是保存数据的 table 。
对于每个 pilotid,我想创建一个 newrat 值数组,稍后我将使用它来填充图表。 for循环的索引必须像这样添加到每个数组的名称中:
$data0[]
$data1[]
$data2[]...etc
当我单独做时它有效:
$result = $mysqli->query("select newrat from merged where pilotid = $pilotids[0] order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data0[] = $row['newrat'];
}
$result = $mysqli->query("select newrat from merged where pilotid = '$pilotids[1]' order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data1[] = $row['newrat'];
}
$result = $mysqli->query("select newrat from merged where pilotid = '$pilotids[2]' order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data2[] = $row['newrat'];
}
如果我尝试自动迭代 10 次,它不会:
for($i=0; $i < 10; $i++) {
$result = $mysqli->query("select newrat from merged where pilotid = $pilotids[$i] order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
${$data.$i}[] = $row['newrat'];
}
}
你可以这样试试:
$data = [];
for($i=0; $i < 10; $i++) {
$result = $mysqli->query("select newrat from merged where pilotid = $pilotids[$i] order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data[$i][] = $row['newrat'];
}
}
如您所见,我使用的是在循环外定义的二维数组。
可能的话寻求帮助。
$pilotsids 是一个 ID 数组。 merged 是保存数据的 table 。 对于每个 pilotid,我想创建一个 newrat 值数组,稍后我将使用它来填充图表。 for循环的索引必须像这样添加到每个数组的名称中:
$data0[]
$data1[]
$data2[]...etc
当我单独做时它有效:
$result = $mysqli->query("select newrat from merged where pilotid = $pilotids[0] order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data0[] = $row['newrat'];
}
$result = $mysqli->query("select newrat from merged where pilotid = '$pilotids[1]' order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data1[] = $row['newrat'];
}
$result = $mysqli->query("select newrat from merged where pilotid = '$pilotids[2]' order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data2[] = $row['newrat'];
}
如果我尝试自动迭代 10 次,它不会:
for($i=0; $i < 10; $i++) {
$result = $mysqli->query("select newrat from merged where pilotid = $pilotids[$i] order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
${$data.$i}[] = $row['newrat'];
}
}
你可以这样试试:
$data = [];
for($i=0; $i < 10; $i++) {
$result = $mysqli->query("select newrat from merged where pilotid = $pilotids[$i] order by mid asc");
while($row = mysqli_fetch_assoc($result)) {
$data[$i][] = $row['newrat'];
}
}
如您所见,我使用的是在循环外定义的二维数组。