我正在尝试运行一个从数据库获取信息并返回值数组的函数,因此我可以在页面上提取它。
在函数内部,我的查询之后我有以下代码:
$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
?
答案 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);