2016-02-28 89 views
-1

我有以下腳本來創建數組超出我的代碼:當我嘗試的print_r它(如print_r($roundsarray);的print_r陣列返回嵌套數組

$roundstotal=mysql_query("SELECT id FROM calendar 
          WHERE eventDate 
          BETWEEN '$season_start' 
           AND '$season_end' 
           AND competition='$compId' 
           AND tag!='T' 
          ORDER BY eventDate ASC", $CONNECTW); 
while($row = mysql_fetch_assoc($roundstotal)) { 
    $roundsarray[]=$row; 
} 

,我得到以下,這是不是什麼都關於我看過的陣列的文檔顯示。這可能就是爲什麼當我嘗試使用數組中的數據時,我什麼也得不到。

打印輸出是:

Array ([0] => Array ([id] => 598) 
     [1] => Array ([id] => 602) 
     [2] => Array ([id] => 607) 
     [3] => Array ([id] => 613) 
     [4] => Array ([id] => 619) 
     [5] => Array ([id] => 626) 
     [6] => Array ([id] => 633) 
     [7] => Array ([id] => 641) 
     [8] => Array ([id] => 648) 
     [9] => Array ([id] => 656) 
     [10] => Array ([id] => 660) 
     [11] => Array ([id] => 668) 
     [12] => Array ([id] => 675) 
     [13] => Array ([id] => 682) 
     [14] => Array ([id] => 688) 
     [15] => Array ([id] => 694) 
     [16] => Array ([id] => 699)) 

這是正確的嗎?難道不是Array ([0] => 598 [1]=> 602等?

+3

沒有一切都是正確的。如果你想要一個一維數組,只需要將每一行合併到你的數組中。 – Rizier123

+1

'$ roundsarray [] = $ row ['id'];'在你的代碼中需要做這麼多的改變 –

回答

2

首先,mysql_*函數已被棄用了不少,,所以不要使用它們。下面,我將回答使用mysqli_*函數。

第二,這是預期的行爲,爲mysqli_fetch_assoc已經返回一個關聯數組:

while($row = mysqli_fetch_assoc($roundstotal)) { 
    // $row is an array of array("id" => 598); and so on 
    $roundsarray[]=$row; 
} 

你需要的是

while($row = mysqli_fetch_assoc($roundstotal)) { 
    $roundsarray[]=$row['id']; 
} 

然後$roundsarray陣列看起來像您期望它看起來:

Array (
    [0] => 598 
    [1] => 602 
    [2] => 607 
    [3] => 613 
    // ... and so on 
)