簡體   English   中英

PHP 在 For 循環中創建數組

[英]PHP Creating an array inside a For Loop

如果可能的話尋求一些幫助。

$pilotsids 是一個 ID 數組。 merged 是保存數據的表。 對於每個 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'];
    }
}

如您所見,我使用的是在循環外定義的二維數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM