从循环回显PHP数组
我试图从循环中回显一个数组,但它似乎不起作用 代码,将值放入数组:从循环回显PHP数组,php,arrays,Php,Arrays,我试图从循环中回显一个数组,但它似乎不起作用 代码,将值放入数组: public function get_language() { global $db; $language = $this->get_visit_loc(); $rows = array(); $query = $db->query("SELECT * FROM languages WHERE lang_id = '{$language
public function get_language() {
global $db;
$language = $this->get_visit_loc();
$rows = array();
$query = $db->query("SELECT * FROM languages WHERE lang_id = '{$language}'") or die(mysql_error());
if($db->num_rows($query) > 0) {
while($row = $db->fetch_array($query)) {
$rows[] = $row;
}
} else {
$rows['error'] = 'We have some serious Error!';
}
return $rows;
}
如果调用该函数并尝试回显数组,它将不返回任何结果
$lan = $lang->get_language();
echo $lan['lang_id']; //returns nothing.
echo $lan['error']; //Returns an error.
打印结果:
Array ( [0] => Array ( [id] => 1 [lang_id] => EE ) )
您需要迭代循环以获得内部行/数组。
error
键将只存在于第一个数组中
if(!empty($lan['error']))
echo $lan['error'];
else{
foreach($lan as $l){
echo $l['lang_id'];
}
}
这里有一个单一语言的二维数组。由于您只有一种语言,因此请使用以下代码:
if($db->num_rows($query) > 0) {
while($row = $db->fetch_array($query)) {
return $row;
}
} else {
$rows['error'] = 'We have some serious Error!';
}
由于您得到的是单个结果(假设每个语言ID都有一条记录,因为它总是这样:),因此不需要执行以下操作
$rows[] = $row;
希望这会有所帮助。Lang\u id位于嵌套在另一个数组的第一项中的数组中,因此它应该是
echo $lan[0]['lang_id']
echo$lan[0]['lang\u id']
有效吗?$rows[]=$row
所以要访问每一行,您需要执行$lan[0]['lang\u id']
您需要的是echo$lan[0]['lang\u id']