繁体   English   中英

print_r数组返回嵌套数组

[英]print_r array returns nested arrays

我有以下脚本根据我的代码创建一个数组:

$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;
}

当我尝试使用print_r(如print_r($roundsarray); )时,得到以下内容,这并不是我所看到的有关数组的所有文档所显示的内容。 可能是这样的原因,当我尝试在更远的地方使用数组中的数据时,我什么也没得到。

打印输出为:

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等吗?

首先,不推荐使用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
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM