CI result_array返回:数组([0] =>数组([id] => 2)[1] =>数组([id] => 1))

时间:2015-11-26 21:55:34

标签: php arrays codeigniter

我的模特是这样的:

$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

1 个答案:

答案 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>";

}