我有一张这样的表:
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中的内置函数?
答案 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;
}
?>