2016-02-28 84 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 
)