Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/10/2014, 15:13
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Agrupar campos de un array

Lo primero que debes hacer es agrupar tus valores en un nuevo array, y a partir de ahí iterar sus valores:

Código PHP:
Ver original
  1. $arrDatos = array();
  2. $arrDatos[0] = array("nombre" => "test1", "id" => 2);
  3. $arrDatos[1] = array("nombre" => "test2", "id" => 2);
  4. $arrDatos[2] = array("nombre" => "test3", "id" => 3);
  5. $arrDatos[3] = array("nombre" => "test4", "id" => 3);
  6. $arrDatos[4] = array("nombre" => "test5", "id" => 4);
  7. $arrDatos[5] = array("nombre" => "test6", "id" => 5);  
  8.  
  9. $arbol = array();
  10.  
  11. foreach ($arrDatos as $arr) {
  12.   if (!$arbol[$arr['id']]) {
  13.     $arbol[$arr['id']] = array();
  14.   }
  15.  
  16.   $arbol[$arr['id']] []= $arr['nombre'];
  17. }
  18.  
  19. var_dump($arbol);

Otra forma es guardar en memoria el valor del ID, así:

Código PHP:
Ver original
  1. $arrDatos = array();
  2. $arrDatos[0] = array("nombre" => "test1", "id" => 2);
  3. $arrDatos[1] = array("nombre" => "test2", "id" => 2);
  4. $arrDatos[2] = array("nombre" => "test3", "id" => 3);
  5. $arrDatos[3] = array("nombre" => "test4", "id" => 3);
  6. $arrDatos[4] = array("nombre" => "test5", "id" => 4);
  7. $arrDatos[5] = array("nombre" => "test6", "id" => 5);  
  8.  
  9. $actual = 0;
  10.  
  11. foreach ($arrDatos as $dato) {
  12.   if ($dato['id'] !== $actual) {
  13.     $actual = $dato['id'];
  14.  
  15.     echo "$actual\n";
  16.   }
  17.  
  18.   echo $dato['nombre'] . "\n";
  19. }

¿Se entiende la idea?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.