PHP - Agrupar Valores Array PHP y sumar valores

 
Vista:
sin imagen de perfil
Val: 29
Ha aumentado su posición en 33 puestos en PHP (en relación al último mes)
Gráfica de PHP

Agrupar Valores Array PHP y sumar valores

Publicado por Ricardo (10 intervenciones) el 21/10/2019 16:25:33
Hola a todos...quiero saber si alguien me puede ayudar con los siguiente:

//en Javascript tengo el array es igual a [1001-10; 1002-23; 1001-10; 1002-15]; //trae valores de variable1 y variable2

Tengo este arreglo de valores recibidos en la variable $data en PHP:

1
$data = json_decode($_POST['array']);

con la función explode() se que puedo separar los valores la cadena de la siguiente manera:

1
2
3
4
5
6
7
for ($i=0; $i <count($data) ; $i++)
{
 $variable = explode('-',$data[$i]); // separa las variables que vienen amarrados como cadena:
 
$variable[0];  //valores de variable1
$variable[1]; //valores de variable2
}

Pero lo que necesito es antes de guardar los datos en la base de datos, es agrupar los valores por variable1 y asociarlo a la suma de variable2: Ejemplo:

cadena original:
1001-10
1002-23
1001-10
1002-15

Convertirlo en cadena modificada:

1001-20
1002-28

y una vez agrupados por variable1 poder guardar en la base de datos.

Doy las gracias a quien pueda ayudarme. 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
Imágen de perfil de Alejandro
Val: 1.822
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Agrupar Valores Array PHP y sumar valores

Publicado por Alejandro (594 intervenciones) el 21/10/2019 18:30:38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for ($i=0; $i <count($data) ; $i++)
{
   $variable = explode('-',$data[$i]); // separa las variables que vienen amarrados como cadena:
 
   $variable[0]; //valores de variable1
   $variable[1]; //valores de variable2
 
   if( !isset($sumas[$variable[0]]) ){
      $sumas[$variable[0]] = $variable[1];
   }else{
      $sumas[$variable[0]] += $variable[1];
   }
}
foreach($sumas as $key=>$value){
   echo $key.'-'.$value.'<br />';
}
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
sin imagen de perfil
Val: 29
Ha aumentado su posición en 33 puestos en PHP (en relación al último mes)
Gráfica de PHP

Agrupar Valores Array PHP y sumar valores

Publicado por Ricardo (10 intervenciones) el 22/10/2019 16:23:59
Muchas gracias Alejandro, era justo lo que necesitaba. Pero me acabo de dar cuenta que necesitaré agregar una nueva variable a la cadena y no sé cómo asociarla a la variable key.

Manteniendo el mismo ejemplo anterior, ahora sería de la siguiente manera:

cadena original:
key value value2
1001-10-200
1002-23-100
1001-10-190
1002-15-77

Convertirlo en cadena modificada. Aquí necesito que aparte de rescatar la suma del segundo elemento de la cadena, se rescate el valor máximo del tercer elemento de la cadena y asociarlo al key de la siguiente manera:

1001-20-200
1002-38-190

Es posible realizar esto? Agradezco tu ayuda. 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
Imágen de perfil de Alejandro
Val: 1.822
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Agrupar Valores Array PHP y sumar valores

Publicado por Alejandro (594 intervenciones) el 22/10/2019 16:42:45
Es fácil, solo inténtalo.
1
2
3
4
5
6
7
if( !isset($sumas[$variable[0]]) ){
      $sumas[$variable[0]] = array(0, 0);
   }
   $sumas[$variable[0]][0] += $variable[1];
   if( $sumas[$variable[0]][1] < $variable[2] ){
      $sumas[$variable[0]][1] = $variable[2];
   }

Como podrás darte cuenta el nombre de la variable $suma ahora no es muy descriptivo, no lo he cambiado pera que sigas el hilo del ejemplo anterior.
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
sin imagen de perfil
Val: 29
Ha aumentado su posición en 33 puestos en PHP (en relación al último mes)
Gráfica de PHP

Agrupar Valores Array PHP y sumar valores

Publicado por Ricardo (10 intervenciones) el 22/10/2019 16:56:13
Disculpa, pero no comprendo lo que hiciste. El código no me arroja el máximo valor del 3er elemento de la cadena.

y en el foreach hay algún cambio?

1
2
3
4
5
foreach($sumas as $key=>$value){
 
   echo $key.'-'.$value.'<br />';
 
}
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 Alejandro
Val: 1.822
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Agrupar Valores Array PHP y sumar valores

Publicado por Alejandro (594 intervenciones) el 22/10/2019 17:32:56
Necesitas entender lo que se hizo anteriormente.
Ahora $suma es un array bidimensional, comúnmente comparado con tablas donde el primer indice es la fila o registro y el segundo la columna o campo.
1
$suma[fila][columna]

Así pues puedes tener n filas y 2 columnas (suma y máximo).
1
echo $key.'-'.$value[0].'-'.$value[1].'<br />';
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