数组([0] =>数组...提取数组值的问题

时间:2014-07-15 08:49:38

标签: php arrays

我正在尝试运行一个从数据库获取信息并返回值数组的函数,因此我可以在页面上提取它。

在函数内部,我的查询之后我有以下代码:

$example_array = array();
while ($row = mysql_fetch_assoc($query) {
    $example_array[] = $row;
}
return $example_array;

结束了我的功能。除此之外,我有这个:

extract($example_array);

我认为我可以直接echo之前$example_array中的任何变量,例如<?= $example_var ?>但它们不包含任何数据。

运行print_r($example_array);会得到一个如下所示的数组:

Array ( [0] => Array ( [example_var] => Example String ) )

该代码的开头使我认为我的数组在另一个数组的第一个([0])值中以某种方式“丢失”,因此无法正确提取。

我是否已经错误地将数据添加到初始$example_array

3 个答案:

答案 0 :(得分:1)

问题是mysql_fetch_array意味着$row['row_name']有效。

当您向数组$ example_array添加$ row时,您现在也需要通过它的数组ID访问它,例如;

$example_array[0]['row_name'], $example_array[1]['row_name']等。

你到底想要达到什么目的?如果我们知道,可能更容易提供帮助。

答案 1 :(得分:1)

也许:

$example_array = array();
while ($row = mysql_fetch_assoc($query) {
    array_push($example_array, $row['exemple_var']);
}
return $example_array;

答案 2 :(得分:1)

执行$example_array[] = $row;时,将当前行分配给新的$example_array索引。如果你想像$example_array['row_name']那样访问它,你必须像这样分配它:

$example_array = $row;

但是当你这样做时,$example_array将被覆盖,直到它到达最后一行(这意味着$example_array将始终包含查询的最后一行)。如果您只想要第一行,则可以执行此操作并跳过整个while循环:

$example_array = mysql_fetch_assoc($query);