从CodeIgniter中的主键索引的一组行中检索数据库中的数据

时间:2010-09-19 09:55:52

标签: codeigniter

我有一张这样的表:

id | username | email
---+----------+----------------
 1 |     John | john@example.com
17 |     Mary | mary@example.com

我希望得到这样的结果:

array(
  1 => array(
    username => 'John',
    email => 'john@example.com'
  ),
  17 => array(
    username => 'Mary',
    email => 'mary@example.com'
  )
);

是否可以使用CodeIgniter中的内置函数?

2 个答案:

答案 0 :(得分:4)

回答我自己的问题:

我创建了一个帮手:

function assoc_by($key, $array) {
    $new = array();
    foreach ($array as $v) {
        if (!array_key_exists($v[$key], $new))
            $new[$v[$key]] = $v;
    }
    return $new;
}

可以这样使用:

$rows = assoc_by('id', $this->db->get_where(...)->result_array());

答案 1 :(得分:3)

据我所知,虽然你可以创建一个基本模型,扩展它并为它创建一个函数,但是没有相同的内置函数,

<?php
//Assuming $dbdata is the data returned as an array from database
$result = array();
if(!empty($dbdata))
{
  foreach($dbdata as $key=>$value)
  {
    $id = $value['id'];
    $result[$id] = array( 'username' => $value['username'],
                          'email'=>$value['email'];
                         );
   }
    return $result;
}
?>