操作Multiselect-CodeIgniter的结果数组

时间:2013-05-15 20:34:47

标签: php codeigniter

我正在尝试使用查询到数据库的结果在我的视图中填充多选。很抱歉,如果这是一个非常基本的问题 - 我对CodeIgniter和MVC有点新鲜。

我的模型只是从表中获取所有记录:

function getAll() {
            $query = $this->db->get('example');
            return $query->result_array();
    }

然后我希望将结果传递给我的视图以填充多选表单元素。但是,返回的关联数组不提供我想要的结果。

我得到了什么:

    [0] Array
        (
            [id] => 6
            [name] => Bob    

我想得到什么:

[0] Array
    (
        [6] => Bob
        [7] => Linda

我错过了一些可以达到理想结果的查询吗?我应该只使用foreach来创建一个新的数组,它将按照我想要的方式进行格式化吗?如果是这样,foreach属于我的控制器或视图。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

试试这个:

function getAll()
{
    $items = $this->db->get('example')->result_array();
    if(empty($items))
        return array();

    $res = array();
    $i   = 0; 
    while($i < count($items))
    {
        $res[$items[$i]['id']] = $items[$i]['name'];
        ++$i;
    }

    return array($res);
}

答案 1 :(得分:1)

最有效的方法是使用活动记录,因为它只是从表中的“名称”列中获取数据)

$this->db->select('name')
         ->from('example');

return $this->db->get()->result();

如果您要使用foreach循环,如果您在控制器中处理结果,则必须在视图中再次处理它们,因此您也可以将整个结果数组发送到视图并在视图。如果您需要在视图中使用某个特定表的大多数列,这将非常有用。