Получить данные из базы данных в виде набора строк, проиндексированных по первичному ключу в CodeIgniter - PullRequest
1 голос
/ 19 сентября 2010

У меня есть такая таблица:

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 ]

4 голосов
/ 19 сентября 2010

Отвечая на мой собственный вопрос:

Я создал помощника:

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());
3 голосов
/ 19 сентября 2010

Насколько мне известно, там нет встроенных функций для одного и того же, хотя вы можете создать базовую модель, расширить ее и создать функцию для того же самого,

<?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;
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...