在PHP中访问多维数组中的值

时间:2017-11-17 17:37:23

标签: php multidimensional-array mysqli

在我的PHP应用程序中,我需要采用多维数组并在for循环中提取值。查询将始终返回9行。

$w = mysqli_query($con,"SELECT age, percent FROM drive03_2_monthly_income WHERE birthYear='1956' AND (age LIKE '%.00%') ORDER BY birthYear,age ");

$row = mysqli_fetch_array($w);
    for($n=0;$n<9;$n++) {
        echo $row[$n]->age." -- ".$row[$n]->percent."<br />";
        }

当我运行它时,我在$ w中获取了我想要的数据,但是在循环中提取值时出现问题。

2 个答案:

答案 0 :(得分:0)

你在这里。

<?php
$w = mysqli_query($con,"SELECT age, percent FROM drive03_2_monthly_income WHERE birthYear='1956' AND (age LIKE '%.00%') ORDER BY birthYear,age ");
while ($row = mysqli_fetch_array($w, MYSQLI_ASSOC))
{ 
     echo $row['age']->age." -- ".$row['percent']->percent."<br />";  
}
?>

答案 1 :(得分:-1)

问题是mysqli_fetch_array()获得了一行。您可以选择以下步骤。

选项1 - 在循环中使用mysqli_fetch_array()

while($row = mysqli_fetch_array($w)){
    // Do something with your associative row data
    echo $row['age'];
}

选项2 - 在循环中使用mysqli_fetch_object()

while($row = mysqli_fetch_object($w)){
    // Do something with your object row data
    echo $row->name;
}

选项3 - 使用mysqli_fetch_all()

foreach(mysqli_fetch_all($w, MYSQLI_ASSOC) as $row){ 
    // Do something with your associative row data
    echo $row['age'];
}

不建议这样做,如文档中所引用。

  

由于mysqli_fetch_all()将所有行作为数组返回到一个数组中   步骤,它可能比一些类似的功能消耗更多的内存,如   mysqli_fetch_array(),它一次只返回一行   结果集。此外,如果您需要迭代结果集,那么   将需要一个循环结构,这将进一步影响性能。   出于这些原因,mysqli_fetch_all()只应该在那些中使用   将获取的结果集发送到另一个层的情况   用于处理。