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'];
    }
}

如您所见,我使用的是在循环外定义的二维数组。