PHP - Agrupar y sumar items de array

 
Vista:
sin imagen de perfil

Agrupar y sumar items de array

Publicado por Julio (3 intervenciones) el 05/09/2016 00:14:52
Hola a todos, espero puedan darme una mano con este dilema que tengo.

TENGO ESTE ARRAY Y ME GUSTARIA AGRUPAR POR EL DNI Y SUMAR LOS VALORES ITEMS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Array
(
    [0] => Array
        (
            [dni] => 98989898
            [email] => edgra@gmail.com
            [date] => 2016-09-02 20:58:53
            [items] => 7
        )
 
    [1] => Array
        (
            [dni] => 9874569
            [email] => reyna@gmail.com
            [date] => 2016-09-02 20:58:54
            [items] => 1
        )
 
    [2] => Array
        (
            [dni] => 44520253
            [email] => llavilla10@gmail.com
            [date] => 2016-09-02 20:18:12
            [items] => 1
        )
 
    [3] => Array
        (
            [dni] => 44520253
            [email] => cesar@test.com
            [date] => 2016-09-02 20:18:05
            [items] => 2
        )
 
)

QUIERO OPTENER ALGO COMO ESTO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Array
(
    [0] => Array
        (
            [dni] => 98989898
            [items] => 7
        )
 
    [1] => Array
        (
            [dni] => 9874569
            [items] => 1
        )
 
    [2] => Array
        (
            [dni] => 44520253
            [items] => 3
        )
 
)


Gracias

Saludos.
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
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Agrupar y sumar items de array

Publicado por Yamil Bracho (888 intervenciones) el 05/09/2016 01:16:24
Puedes hacer algo como :

1
2
3
4
5
$result = array();
foreach($original as $t) {
	$result[] = array('dni' => $t['dni'], 'items' => $t['iitems']);
}
print_r($result);
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
sin imagen de perfil

Agrupar y sumar items de array

Publicado por Julio (3 intervenciones) el 05/09/2016 15:21:01
Gracias por responder, pero ahi no agrupa ni suma solo genera un nuevo array con los campos dni e items.
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 y sumar items de array

Publicado por xve (6935 intervenciones) el 05/09/2016 16:10:18
Hola Julio, te he preparado un código que hace exactamente lo que quieres...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
$original=Array
(
    Array
        (
            "dni" => 98989898,
            "email" => "edgra@gmail.com",
            "date" => "2016-09-02 20:58:53",
            "items" => 7
        ),
 
    Array
        (
            "dni" => 9874569,
            "email" => "reyna@gmail.com",
            "date" => "2016-09-02 20:58:54",
            "items" => 1
        ),
 
    Array
        (
            "dni" => 44520253,
            "email" => "llavilla10@gmail.com",
            "date" => "2016-09-02 20:18:12",
            "items" => 1
        ),
 
    Array
        (
            "dni" => 44520253,
            "email" => "cesar@test.com",
            "date" => "2016-09-02 20:18:05",
            "items" => 2
        ),
 
);
 
$result = array();
foreach($original as $t) {
	$repeat=false;
	for($i=0;$i<count($result);$i++)
	{
		if($result[$i]['dni']==$t['dni'])
		{
			$result[$i]['items']+=$t['items'];
			$repeat=true;
			break;
		}
	}
	if($repeat==false)
		$result[] = array('dni' => $t['dni'], 'items' => $t['items']);
}
echo "<pre>";
print_r($result);
echo "</pre>";
?>

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
6
Comentar
sin imagen de perfil

Agrupar y sumar items de array

Publicado por Julio (3 intervenciones) el 05/09/2016 16:20:23
Gracias es exactamente lo que buscaba.

Saludos.
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 y sumar items de array

Publicado por Rafael Martínez (1 intervención) el 23/06/2018 16:55:00
Eres un mago!
Gracias amigo tenía 1 mes intentándolo
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 y sumar items de array

Publicado por asfvadv (1 intervención) el 21/09/2018 20:17:14
bien amigo!
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 y sumar items de array

Publicado por Perikazo (1 intervención) el 02/01/2019 21:31:23
Funciona perfecto ++++
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 y sumar items de array

Publicado por jesus (5 intervenciones) el 21/08/2019 21:41:19
Ufff, graaaacias, funciona perfecto
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 y sumar items de array

Publicado por Daniela (2 intervenciones) el 27/11/2019 10:32:36
Funciona, pero los campos que no son iguales no me los muestra.
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 y sumar items de array

Publicado por Claudia (1 intervención) el 17/06/2021 23:32:40
Gracias, me ha ayudado mucho
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