我试图从循环中回显数组,但它似乎没有用。
代码,将值放在数组中:
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.
print_r结果:
Array ( [0] => Array ( [id] => 1 [lang_id] => EE ) )
答案 0 :(得分:5)
您需要遍历循环以获取内部行/数组。 error
密钥只存在于第一个数组中。
if(!empty($lan['error']))
echo $lan['error'];
else{
foreach($lan as $l){
echo $l['lang_id'];
}
}
答案 1 :(得分:0)
这里有一个单一语言的二维数组。由于您只使用一种语言,因此请使用以下代码:
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;
希望这会有所帮助。
答案 2 :(得分:0)
Lang_id是一个嵌套在另一个数组的第一项中的数组,所以它应该是
echo $lan[0]['lang_id']