Codeigniter group и создать многомерный массив

У меня есть функция в моей модели:

public function get_job($lsnumber = FALSE) { $this->db->join('administrator', 'job.idadministrator = administrator.idadministrator'); $this->db->join('artwork', 'job.idjob = artwork.idjob'); if($lsnumber === FALSE) { $query = $this->db->get('job'); return $query->result_array(); } } 

Возвращаясь, это позволяет мне сгенерировать строку для каждой записи в базе данных с использованием цикла foreach в моем представлении.

Иногда эти строки будут иметь общие черты, например поле idjob как указано в правиле join .

На данный момент я получаю вывод (от print_r ) следующим образом:

 Array ( [idjob] => 1 [lsnumber] => 12345 [custname] => Scott Brown (Customer) [custemail] => sbrown@example.com [custcompany] => Customer [idadministrator] => 1 [complete] => 0 [administratorname] => Scott Brown (Administrator) [administratoremail] => scott@example.com [administratorjob] => Job [administratorphone] => 01234 567890 [idartwork] => 1 [filename] => gb-usb1.jpg [productname] => Bespoke USB Drive [revision] => 0 [status] => N ) Array ( [idjob] => 1 [lsnumber] => 12345 [custname] => Scott Brown (Customer) [custemail] => sbrown@example.com [custcompany] => LSi (Customer) [idadministrator] => 1 [complete] => 0 [administratorname] => Scott Brown (Administrator) [administratoremail] => scott@example.com [administratorjob] => Job [administratorphone] => 01234 567890 [idartwork] => 2 [filename] => pa17.jpg [productname] => Notebooks [revision] => 0 [status] => Y ) 

Однако я хотел бы, чтобы массив был сгруппирован и многомерный, что-то вроде этого:

 Array ( [idjob] => 1 [lsnumber] => 12345 [custname] => Scott Brown (Customer) [custemail] => sbrown@example.com [custcompany] => Customer [idadministrator] => 1 [complete] => 0 [administratorname] => Scott Brown (Administrator) [administratoremail] => scott@example.com [administratorjob] => Job [administratorphone] => 01234 567890 [artwork][0] => Array ( [idartwork] => 1 [filename] => gb-usb1.jpg [productname] => Bespoke USB Drive [revision] => 0 [status] => N ) [artwork][1] => Array ( [idartwork] => 2 [filename] => pa17.jpg [productname] => Notebooks [revision] => 0 [status] => Y ) ) 

Я хочу иметь возможность группировать его по idjob и строить под-массив всех связанных с ним произведений.

Я пробовал всевозможные вещи: array_chunk() , group by, все виды.

Попробуйте это, возможно, вам придется немного изменить его:

 function get_job(){ $data = array(); $data = $this->db->get('job')->result_array(); foreach( $data as $key=>$each ){ $data[$key] = $this->db->where('idadministrator', $each['idadministrator'])->get('administrator')->row_array(); $data[$key]['artwork'] = $this->db->where('idjob', $each['idjob'])->get('artwork')->result_array(); } return $data; }