Как выполнить группировку в php ⇐ Php
-
Гость
Как выполнить группировку в php
У меня есть следующий массив, в котором есть элемент «CONSECUTIVO_GRUPO», который я хочу использовать в качестве ссылки для создания группы «RESPONSES» в массиве из трех позиций: CODIGO, ID_MODULO, VALOR. Исходный массив:
Массив
(размер=14) 0 => массив (размер=5) 'CODIGO' => строка '447' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '2023-09-05' (длина = 10) 1 => массив (размер=5) 'CODIGO' => строка '449' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 2 => массив (размер=5) 'CODIGO' => строка '450' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '5' (длина = 1) 3 => массив (размер=5) 'CODIGO' => строка '451' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 4 => массив (размер=5) 'CODIGO' => строка '452' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '2' (длина = 1) 5 => массив (размер=5) 'CODIGO' => строка '473' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'M' (длина = 1) 6 => массив (размер=5) 'CODIGO' => строка '478' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 7 => массив (размер=5) 'CODIGO' => строка '475' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 8 => массив (размер=5) 'CODIGO' => строка '446' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'H102' (длина = 4) 9 => массив (размер=5) 'CODIGO' => строка '472' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'H102' (длина = 4) 10 => массив (размер=5) 'CODIGO' => строка '473' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'M' (длина = 1) 11 => массив (размер=5) 'CODIGO' => строка '478' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 12 => массив (размер=5) 'CODIGO' => строка '475' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 13 => массив (размер=5) 'CODIGO' => строка '472' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'ДОБЕЛЬНОСТЬ' => строка «H108» (длина = 4) Мне нужна группировка по CONSECUTIVO_GRUPO, вот так;
{ «КОНСЕКУТИВО»: «2», «ГРУПО»: «1», "РЕСПУЕСТАС": [ [ «94», "76" ], [ «96», «26,3» ], [ «160», "170" ], [ «163», "12,3" ], [ «207», "130" ], [ «208», "90" ], [ «259», "2019-10-02" ], [ «260», "2" ], [ «261», "З358" ], [ «1209», "СП" ], [ «1296», "5" ], [ «1297», "0" ] ] }, { «КОНСЕКУТИВО»: «3», «ГРУПО»: «1», «РЕСПУЕСТАС»: [ [ "94", "76" ], [ "96", "26.3" ], [ "160", "170" ], [ "163", "14.6" ], [ "207", "130" ], [ "208", "90" ], [ "259", "2019-10-18" ], [ "260", "2" ], [ "261", "Z358" ], [ "1209", "SP" ], [ "1296", "10" ], [ "1297", "0" ] ] }, I haven't found a way to do it, could someone help me please, I have the following code:
$result = []; foreach ($rsp as $answer){ $result[] = array( "CONSECUTIVO" => $answer['CONSECUTIVO_GRUPO'], "GRUPO" => $answer['ID_GRUPO'], "RESPUESTAS" => array( array( $answer['CODIGO'], $answer['ID_MODULO'], $answer['VALOR'] ) ) ); }
У меня есть следующий массив, в котором есть элемент «CONSECUTIVO_GRUPO», который я хочу использовать в качестве ссылки для создания группы «RESPONSES» в массиве из трех позиций: CODIGO, ID_MODULO, VALOR. Исходный массив:
Массив
(размер=14) 0 => массив (размер=5) 'CODIGO' => строка '447' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '2023-09-05' (длина = 10) 1 => массив (размер=5) 'CODIGO' => строка '449' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 2 => массив (размер=5) 'CODIGO' => строка '450' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '5' (длина = 1) 3 => массив (размер=5) 'CODIGO' => строка '451' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 4 => массив (размер=5) 'CODIGO' => строка '452' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '2' (длина = 1) 5 => массив (размер=5) 'CODIGO' => строка '473' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'M' (длина = 1) 6 => массив (размер=5) 'CODIGO' => строка '478' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 7 => массив (размер=5) 'CODIGO' => строка '475' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 8 => массив (размер=5) 'CODIGO' => строка '446' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '20' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'H102' (длина = 4) 9 => массив (размер=5) 'CODIGO' => строка '472' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '1' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'H102' (длина = 4) 10 => массив (размер=5) 'CODIGO' => строка '473' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка 'M' (длина = 1) 11 => массив (размер=5) 'CODIGO' => строка '478' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 12 => массив (размер=5) 'CODIGO' => строка '475' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'VALOR' => строка '0' (длина = 1) 13 => массив (размер=5) 'CODIGO' => строка '472' (длина = 3) 'CONSECUTIVO_GRUPO' => строка '2' (длина = 1) 'ID_MODULO' => строка '22' (длина = 2) 'ID_GRUPO' => строка '39' (длина = 2) 'ДОБЕЛЬНОСТЬ' => строка «H108» (длина = 4) Мне нужна группировка по CONSECUTIVO_GRUPO, вот так;
{ «КОНСЕКУТИВО»: «2», «ГРУПО»: «1», "РЕСПУЕСТАС": [ [ «94», "76" ], [ «96», «26,3» ], [ «160», "170" ], [ «163», "12,3" ], [ «207», "130" ], [ «208», "90" ], [ «259», "2019-10-02" ], [ «260», "2" ], [ «261», "З358" ], [ «1209», "СП" ], [ «1296», "5" ], [ «1297», "0" ] ] }, { «КОНСЕКУТИВО»: «3», «ГРУПО»: «1», «РЕСПУЕСТАС»: [ [ "94", "76" ], [ "96", "26.3" ], [ "160", "170" ], [ "163", "14.6" ], [ "207", "130" ], [ "208", "90" ], [ "259", "2019-10-18" ], [ "260", "2" ], [ "261", "Z358" ], [ "1209", "SP" ], [ "1296", "10" ], [ "1297", "0" ] ] }, I haven't found a way to do it, could someone help me please, I have the following code:
$result = []; foreach ($rsp as $answer){ $result[] = array( "CONSECUTIVO" => $answer['CONSECUTIVO_GRUPO'], "GRUPO" => $answer['ID_GRUPO'], "RESPUESTAS" => array( array( $answer['CODIGO'], $answer['ID_MODULO'], $answer['VALOR'] ) ) ); }
Мобильная версия