Foros del Web » Programando para Internet » PHP »

Agrupar dentro de un arreglo

Estas en el tema de Agrupar dentro de un arreglo en el foro de PHP en Foros del Web. Hola mis amigos, tengo un array que posee la siguiente información: $sucursales[id_cliente, id_ciudad] 28, 149 28, 111 28, 111 28, 634 28, 111 28, 952 ...
  #1 (permalink)  
Antiguo 01/08/2017, 22:02
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 11 meses
Puntos: 11
Sonrisa Agrupar dentro de un arreglo

Hola mis amigos, tengo un array que posee la siguiente información:

$sucursales[id_cliente, id_ciudad]

28, 149
28, 111
28, 111
28, 634
28, 111
28, 952
28, 111

Mi pregunta es: cómo hago para contar la cantidad total de sucursales que hay en cada id_ciudad para un mismo id_cliente y obtener algo como:

149 = 1
111 = 4
634 = 1
952 = 1
  #2 (permalink)  
Antiguo 02/08/2017, 08:15
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Agrupar dentro de un arreglo

Puedes hacer un print_r de tu arreglo original para ver como esta la estructura ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 02/08/2017, 10:38
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Agrupar dentro de un arreglo

Ve que tal:

Código PHP:
Ver original
  1. $count_bank = array();
  2.  
  3. for($k=0;$k<sizeof($sucursales);$k++){
  4. $count_bank[$sucursales[$k][0]][$sucursales[$k][1]] += 1;
  5. }

Saludos
  #4 (permalink)  
Antiguo 04/08/2017, 06:33
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Agrupar dentro de un arreglo

Podrias hacerlos antes de retornar el array desde la misma consulta, algo así:

Código PHP:
Ver original
  1. $a = $this->con->query("SELECT COUNT(id_cliente) as cliente, id_cliente, id_ciudad  FROM tabla WHERE id_cliente = '$cliente' GROUP BY id_ciudad ORDER BY id_ciudad");

de esa manera ya te retorna el array con las cantidades exactas que maneja el cliente, ahora si lo deseas hacer ya a nivel del array, prueba así:

Código PHP:
Ver original
  1. $data = array(
  2.     '28' => array('149','111','111','634','111','952','111'),
  3.     '26' => array('650','111','110','650','422','420','420'),
  4.     );
  5.  
  6. foreach($data as $key => $value) {
  7.     $cuentas = array_count_values($value);
  8.     echo "<ul>";
  9.     echo "<li>".$key."<ul>";
  10.         foreach ($cuentas as $clave => $valor) {
  11.             echo "<li>".$clave.": ".$valor."</li>";
  12.         };
  13.     echo "</ul></li></ul>";
  14. }

esto retorna:

28
149: 1
111: 4
634: 1
952: 1
26
650: 2
111: 1
110: 1
422: 1
420: 2

Espero te sirva, Saludos
__________________
[email protected]
HITCEL

Etiquetas: arreglo, count
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:08.