我的模特是这样的:
$parameters=array();
$sql="CALL sp_user_fetch_ids()";
$query = $this->db->query($sql, $parameters);
$result=$query->result_array();
$query->next_result();
$query->free_result();
return $result;
我的控制器是:
$data['users']=$this->users_model->ids();
$this->load->view('users',$data);
现在print_r($users)
在视图中显示:
Array ( [0] => Array ( [id] => 2) [1] => Array ( [id] => 1) )
我不能轻易地使用foreach($ users作为$ user)循环,因为数组中有数组。它通过循环$users[0], $users[1]...
然后进一步循环每个数字来工作。这听起来有点矫枉过正,并且没有指定CI文档。
当我尝试使用非CI脚本时,Stored过程确实只返回两个具有正确列的记录。
发生了什么事?
请记住我想使用result_array返回的PURE ARRAY
答案 0 :(得分:0)
当使用print_r()函数在浏览器中显示数组变量时,结果如下:
数组([0] =>数组([id] => 2)[1] =>数组([id] => 1))
如果使用foreach复制并运行上面的数组,则会收到错误消息。因为那是浏览器显示数组格式。
数组(数组(' id' => 2),数组(' id' => 1))
(OR)
数组(0 =>数组(' id' => 2),1 =>数组(' id' => 1))
以上两个数组方法将通过result_array()函数返回。所以你可以使用foreach来执行你的输出。它会起作用。
在控制器中:
将数组值存储到变量中,
$ data ['用户'] =数组(0 =>数组(' id' => 2),1 =>数组(' id&# 39; => 1));
OR
$ data ['用户'] =数组(数组(' id' => 2),数组(' id' => 1)) ;
在View中执行如下:
foreach($ users as $ row){
echo $row['id'];
echo "<br>";
}