Создайте сгруппированный многомерный массив с вложенными подмассивами на основе результата запроса CodeIgniter.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Создайте сгруппированный многомерный массив с вложенными подмассивами на основе результата запроса CodeIgniter.

Сообщение Anonymous »

Используя этот запрос, я получаю в результате этот массив, но некоторые строки повторяются с некоторыми отдельными столбцами. Я хочу перенести эти отдельные столбцы в отдельный массив как многомерный массив родительского массива. Я пытался сделать это с помощью отдельного предложения Mysql group_by, но не смог этого сделать. Я думаю, что лучший способ — сделать это с помощью PHP.
$query = "
SELECT
a.emp_nmbr, a.emp_frstNm,
a.emp_lstNm, a.emp_lclFrn,
b.emp_dsgntn, b.emp_dprtmnt,
b.emp_allwncs, b.emp_bscSlry,
b.emp_sts, c.emp_lvsCtgry,
c.emp_tknFrm, c.emp_tknTo
FROM
employee a
LEFT JOIN
emp_details b
ON a.emp_nmbr = b.emp_nmbr
LEFT JOIN
leaves_details c
ON a.emp_nmbr = c.emp_nmbr
WHERE
emp_lclFrn = 0
LIMIT
$page, $perPage
";

Функция модели CodeIgniter для выполнения запроса:
function count_and_data($query)
{
$query = $this->db->query($query);
$result = $query->result();
$count = $query->num_rows();
$data['count'] = $count;
$data['rows'] = $result;
return $data;
}

Получаемый массив результатов
Array
(
[count] => 16
[rows] => Array
(
[0] => stdClass Object
(
[emp_nmbr] => ophl3
[emp_frstNm] => aaaaaaaa
[emp_lstNm] => saaa
[emp_lclFrn] => 0
[emp_dsgntn] => test
[emp_dprtmnt] => 0
[emp_allwncs] => a:2:{i:0;a:2:{s:7:"alwncNm";s:4:"food";s:9:"alwncAmnt";s:3:"456";}i:1;a:2:{s:7:"alwncNm";s:0:"";s:9:"alwncAmnt";s:0:"";}}
[emp_bscSlry] => 2555
[emp_sts] => 4
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)

[1] => stdClass Object
(
[emp_nmbr] => ophl3
[emp_frstNm] => aaaaaaaa
[emp_lstNm] => saaa
[emp_lclFrn] => 0
[emp_dsgntn] => test
[emp_dprtmnt] => 0
[emp_allwncs] => a:2:{i:0;a:2:{s:7:"alwncNm";s:4:"food";s:9:"alwncAmnt";s:3:"456";}i:1;a:2:{s:7:"alwncNm";s:0:"";s:9:"alwncAmnt";s:0:"";}}
[emp_bscSlry] => 2555
[emp_sts] => 4
[emp_lvsCtgry] => 3
[emp_tknFrm] => 20141223
[emp_tknTo] => 20141224
)

[2] => stdClass Object
(
[emp_nmbr] => ophl3
[emp_frstNm] => aaaaaaaa
[emp_lstNm] => saaa
[emp_lclFrn] => 0
[emp_dsgntn] => test
[emp_dprtmnt] => 0
[emp_allwncs] => a:2:{i:0;a:2:{s:7:"alwncNm";s:4:"food";s:9:"alwncAmnt";s:3:"456";}i:1;a:2:{s:7:"alwncNm";s:0:"";s:9:"alwncAmnt";s:0:"";}}
[emp_bscSlry] => 2555
[emp_sts] => 4
[emp_lvsCtgry] => 4
[emp_tknFrm] => 20141224
[emp_tknTo] => 20141231
)

[3] => stdClass Object
(
[emp_nmbr] => ophl14
[emp_frstNm] => qqq
[emp_lstNm] => qqqq
[emp_lclFrn] => 0
[emp_dsgntn] => test
[emp_dprtmnt] => 0
[emp_allwncs] => a:2:{i:0;a:2:{s:7:"alwncNm";s:5:"qqqqq";s:9:"alwncAmnt";s:4:"2222";}i:1;a:2:{s:7:"alwncNm";s:0:"";s:9:"alwncAmnt";s:0:"";}}
[emp_bscSlry] => 2222
[emp_sts] => 3
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[4] => stdClass Object
(
[emp_nmbr] => ophl1
[emp_frstNm] => yas
[emp_lstNm] => yas
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[5] => stdClass Object
(
[emp_nmbr] => ophl2
[emp_frstNm] => test
[emp_lstNm] => test
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[6] => stdClass Object
(
[emp_nmbr] => ophl4
[emp_frstNm] => yaa
[emp_lstNm] => yaaa
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[7] => stdClass Object
(
[emp_nmbr] => ophl5
[emp_frstNm] => sdfds
[emp_lstNm] => sdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[8] => stdClass Object
(
[emp_nmbr] => ophl6
[emp_frstNm] => fsdfsdf
[emp_lstNm] => sfsdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[9] => stdClass Object
(
[emp_nmbr] => ophl7
[emp_frstNm] => fsdfsdf
[emp_lstNm] => sfsdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[10] => stdClass Object
(
[emp_nmbr] => ophl8
[emp_frstNm] => yyyyyyyyy
[emp_lstNm] => yyyyyyy
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[11] => stdClass Object
(
[emp_nmbr] => ophl9
[emp_frstNm] => sfdsf
[emp_lstNm] => sfdsdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[12] => stdClass Object
(
[emp_nmbr] => ophl10
[emp_frstNm] => test
[emp_lstNm] => test
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[13] => stdClass Object
(
[emp_nmbr] => ophl11
[emp_frstNm] => test
[emp_lstNm] => test
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[14] => stdClass Object
(
[emp_nmbr] => ophl12
[emp_frstNm] => ssss
[emp_lstNm] => sss
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

[15] => stdClass Object
(
[emp_nmbr] => ophl13
[emp_frstNm] => yaas
[emp_lstNm] => yaas
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvsCtgry] =>
[emp_tknFrm] =>
[emp_tknTo] =>
)

)

)

Я ожидаю
Array
(
[count] => 16
[rows] => Array
(
[0] => stdClass Object
(
[emp_nmbr] => ophl3
[emp_frstNm] => aaaaaaaa
[emp_lstNm] => saaa
[emp_lclFrn] => 0
[emp_dsgntn] => test
[emp_dprtmnt] => 0
[emp_allwncs] => a:2:{i:0;a:2:{s:7:"alwncNm";s:4:"food";s:9:"alwncAmnt";s:3:"456";}i:1;a:2:{s:7:"alwncNm";s:0:"";s:9:"alwncAmnt";s:0:"";}}
[emp_bscSlry] => 2555
[emp_sts] => 4
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
array[1](
[emp_lvsCtgry] => 3
[emp_tknFrm] => 20141223
[emp_tknTo] => 20141224
)
array[2](
[emp_lvsCtgry] => 4
[emp_tknFrm] => 20141224
[emp_tknTo] => 20141231
)

)

[3] => stdClass Object
(
[emp_nmbr] => ophl14
[emp_frstNm] => qqq
[emp_lstNm] => qqqq
[emp_lclFrn] => 0
[emp_dsgntn] => test
[emp_dprtmnt] => 0
[emp_allwncs] => a:2:{i:0;a:2:{s:7:"alwncNm";s:5:"qqqqq";s:9:"alwncAmnt";s:4:"2222";}i:1;a:2:{s:7:"alwncNm";s:0:"";s:9:"alwncAmnt";s:0:"";}}
[emp_bscSlry] => 2222
[emp_sts] => 3
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[4] => stdClass Object
(
[emp_nmbr] => ophl1
[emp_frstNm] => yas
[emp_lstNm] => yas
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[5] => stdClass Object
(
[emp_nmbr] => ophl2
[emp_frstNm] => test
[emp_lstNm] => test
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[6] => stdClass Object
(
[emp_nmbr] => ophl4
[emp_frstNm] => yaa
[emp_lstNm] => yaaa
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[7] => stdClass Object
(
[emp_nmbr] => ophl5
[emp_frstNm] => sdfds
[emp_lstNm] => sdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[8] => stdClass Object
(
[emp_nmbr] => ophl6
[emp_frstNm] => fsdfsdf
[emp_lstNm] => sfsdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[9] => stdClass Object
(
[emp_nmbr] => ophl7
[emp_frstNm] => fsdfsdf
[emp_lstNm] => sfsdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[10] => stdClass Object
(
[emp_nmbr] => ophl8
[emp_frstNm] => yyyyyyyyy
[emp_lstNm] => yyyyyyy
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[11] => stdClass Object
(
[emp_nmbr] => ophl9
[emp_frstNm] => sfdsf
[emp_lstNm] => sfdsdfsdf
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[12] => stdClass Object
(
[emp_nmbr] => ophl10
[emp_frstNm] => test
[emp_lstNm] => test
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[13] => stdClass Object
(
[emp_nmbr] => ophl11
[emp_frstNm] => test
[emp_lstNm] => test
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[14] => stdClass Object
(
[emp_nmbr] => ophl12
[emp_frstNm] => ssss
[emp_lstNm] => sss
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

[15] => stdClass Object
(
[emp_nmbr] => ophl13
[emp_frstNm] => yaas
[emp_lstNm] => yaas
[emp_lclFrn] => 0
[emp_dsgntn] =>
[emp_dprtmnt] =>
[emp_allwncs] =>
[emp_bscSlry] =>
[emp_sts] =>
[emp_lvData]=>array(
array[0](
[emp_lvsCtgry] => 1
[emp_tknFrm] => 20141222
[emp_tknTo] => 20141223
)
)
)

)

)


Подробнее здесь: https://stackoverflow.com/questions/275 ... odeigniter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»