PHP - Agrupar array

 
Vista:

Agrupar array

Publicado por ROBERTO (43 intervenciones) el 19/03/2018 16:55:17
Buenas. Tengo creados 3 arrays

1
2
3
$arr_PRODUCTO[$i] = $ID_PROD[1];
$arr_fecha[$i] = $FECHA;
$arr_desc[$i] = $INCIDENCIA;

En el array PRODUCTOS guardo codigos de cliente. Necesito poder agrupar el array $arr_PRODUCTO[$i]
para poder listar agrupados todas INCIDENCIAS Y FECHAS de cada cliente agrupadas claro.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Agrupar array

Publicado por ROBERTO (43 intervenciones) el 21/03/2018 10:49:36
Vuelvo a formular la pregunta por que veo que no lo he explicado bien de inicio.

Tengo creada una array donde guardo 3 valores.
$datos[$i]['PRODUCTO']
$datos[$i]['FECHA']]
$datos[$i]['DESCRIPCION']

Resulta que por cada producto puede haber más de un registro repetido.
Necesito mostrar en un listado agrupados todos los registros repetidos o no de esta forma.
ejemplo.
PRODUCTO FECHA DESCRIPCION
------------------------------------------------------------------------
AA-121 2018-01-01 MODIFICADO PRODUCTO ........................
AA-122 2018-01-01 PRODUCTO GRABADO .............................
2018-01-05 MODIFICADO .............................................
2018-01-22 MODIFICADO .........................................
FA-422 2018-03-20 GRABADO ..................................................
.
.
Esto quiere decir que del AA-121 SOLO existe un registro , del AA-122 existen 3 y del FA-422 uno y así hasta el final del array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Agrupar array

Publicado por xve (6935 intervenciones) el 21/03/2018 15:23:05
Hola Roberto, gracias por mejorar tu explicación... ahora entiendo lo que quieres hacer...

Para ello, lo que yo haria, seria por una parte ordenar el array por el producto, y posteriormente en un bucle ir mostrando siempre y cuando no sea igual al anterior, que luego poner el texto modificado.

Exactamente como es el array $datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agrupar array

Publicado por ROBERTO (43 intervenciones) el 26/03/2018 10:55:17
Muchas gracias por tu interes. Ya logré solucionarlo.

$Datos es un array que contiene referencias de productos y fechas.
Con esto conseguí agrupar todos los productos ordenados alfabeticamente y por cada producto listar las fechas correspondientes.


1
2
3
4
5
6
7
8
9
10
$datos[$NOM_PROD][$FECHA]
 
ksort($datos);
foreach($datos as $REF =>$arrFechas){
	$listado.= "<br><b>$REF</b><hr>";
	ksort($arrFechas);
	foreach($arrFechas as $fech){
		$listado.= "$fech <br>";
	};
};


Muchas gracias nuevamente por tu interes. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Agrupar array

Publicado por ROBERTO (43 intervenciones) el 26/03/2018 15:31:28
Por otro lado veo que no me ordena los productos alfabeticamente de una manera correcta.
Llega al final que sería el ZS-16 pero despues todos los productos que son numericos me los muestera al final del listado.
Utilizo ksort($datos); para ordenar el array y he probado con narsort y otros pero no lo hace bien.

AA-404
2018-03-20 12:13:02
.
.
YS-8
2018-03-20 12:13:02

YS-9
2018-03-20 12:10:13

ZS-16
2018-03-21 10:43:03
2018-03-21 10:43:13

2201
2018-03-20 11:32:47
220220
18-03-20 11:39:02
2204
2018-03-20 11:39:39
2205
2018-03-20 11:40:20
2215
2018-03-20 11:40:57
2216
2018-03-20 11:41:37
2322
2018-03-19 16:38:50
3342
2018-03-21 10:42:03
6171
2018-03-21 16:28:25
7230
2018-03-21 16:27:34
7742
2018-03-21 14:35:52
7771
2018-03-21 16:32:29
7828
2018-03-21 13:04:42
7908
2018-03-21 16:29:00
7914
2018-03-21 16:30:20
7929
2018-03-20 16:28:04
7931
2018-03-19 14:12:14
2018-03-19 14:12:45
2018-03-22 13:08:58
7932
2018-03-20 16:24:48
7934
2018-03-20 16:06:38
7961
2018-03-20 16:45:42
7966
2018-03-21 16:38:37
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Agrupar array

Publicado por xve (6935 intervenciones) el 26/03/2018 16:24:03
Que extraño Roberto... nos puedes adjuntar el contenido de la variable $datos para probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agrupar array

Publicado por ROBERTO (43 intervenciones) el 27/03/2018 09:42:17
El contenido de $datos es este. Bueno esto es una muestra de ello.


Array ( [AA-151 [PO_7897]] => Array ( [2018-03-19 08:33:30] => 2018-03-19 08:33:30 - mmazon [2018-03-19 14:01:32] => 2018-03-19 14:01:32 - mmazon [2018-03-23 08:51:54] => 2018-03-23 08:51:54 - cfernandez [2018-03-20 10:01:11] => 2018-03-20 10:01:11 - rachel [2018-03-19 16:28:09] => 2018-03-19 16:28:09 - xavier ) [7931] => Array ( [2018-03-19 14:12:14] => 2018-03-19 14:12:14 - jromanos [2018-03-19 14:12:45] => 2018-03-19 14:12:45 - jromanos [2018-03-22 13:08:58] => 2018-03-22 13:08:58 - mjgonzalez ) [SV-631] => Array ( [2018-03-20 08:48:28] => 2018-03-20 08:48:28 - mjgonzalez ) [STV-529N] => Array ( [2018-03-20 08:49:18] => 2018-03-20 08:49:18 - mjgonzalez ) [SVI-542P] => Array ( [2018-03-20 08:54:27] => 2018-03-20 08:54:27 - mjgonzalez ) [SVI-541N] => Array ( [2018-03-20 08:55:07] => 2018-03-20 08:55:07 - mjgonzalez ) [STV-522P] => Array ( [2018-03-20 08:55:44] => 2018-03-20 08:55:44 - mjgonzalez ) [STV-520P] => Array ( [2018-03-20 08:56:41] => 2018-03-20 08:56:41 - mjgonzalez ) [STV-516P] => Array ( [2018-03-20 08:57:11] => 2018-03-20 08:57:11 - mjgonzalez ) [SB-5250P] => Array ( [2018-03-20 08:59:02] => 2018-03-20 08:59:02 - mjgonzalez ) [A-1101] => Array ( [2018-03-20 09:37:09] => 2018-03-20 09:37:09 - mjgonzalez [2018-03-20 09:37:30] => 2018-03-20 09:37:30 - mjgonzalez [2018-03-20 09:38:16] => 2018-03-20 09:38:16 - mjgonzalez ) [A-1104] => Array ( [2018-03-20 09:37:56] => 2018-03-20 09:37:56 - mjgonzalez ) [A-1105] => Array ( [2018-03-20 09:38:38] => 2018-03-20 09:38:38 - mjgonzalez ) [J-1203] => Array ( [2018-03-20 09:39:58] => 2018-03-20 09:39:58 - mjgonzalez [2018-03-20 14:47:42] => 2018-03-20 14:47:42 - mjgonzalez ) [S-233] => Array ( [2018-03-20 09:43:56] => 2018-03-20 09:43:56 - mjgonzalez ) [CE-40] => Array ( [2018-03-20 09:44:21] => 2018-03-20 09:44:21 - mjgonzalez ) [FDM-637] => Array ( [2018-03-20 09:45:04] => 2018-03-20 09:45:04 - mjgonzalez ) [FO-384] => Array ( [2018-03-20 09:45:28] => 2018-03-20 09:45:28 - mjgonzalez ) [RS-140N] => Array ( [2018-03-20 09:46:15] => 2018-03-20 09:46:15 - mjgonzalez ) [SR-473] => Array ( [2018-03-20 09:46:38] => 2018-03-20 09:46:38 - mjgonzalez ) [STV-657N-L] => Array ( [2018-03-20 09:47:03] => 2018-03-20 09:47:03 - mjgonzalez )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar