Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从循环回显PHP数组_Php_Arrays - Fatal编程技术网

从循环回显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']