Foros del Web » Programando para Internet » PHP »

Mostrar array único

Estas en el tema de Mostrar array único en el foro de PHP en Foros del Web. Hola, tengo un array multidimensional Código PHP: $productos  = array(); $productos [ 0 ] = array( "categoria"  =>  "coche" , "combustible"  >  "diesel" , "año"  =>  "2001" ); ...
  #1 (permalink)  
Antiguo 13/11/2014, 21:02
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 86
Antigüedad: 15 años, 3 meses
Puntos: 2
Mostrar array único

Hola,

tengo un array multidimensional

Código PHP:
$productos = array();

$productos[0] = array(
"categoria" => "coche",
"combustible" "diesel",
"año" => "2001"
);
$productos[1] = array(
"categoria" => "moto",
"combustible" "gasolina",
"año" => "2003"
);
$productos[2] = array(
"categoria" => "coche",
"combustible" "diesel",
"año" => "2005"
); 
me gustaria que solo se repitiera un campo, es decir, quiero que al hacer un echo para "categoria" me salga sólo "coche" y "moto" en lugar de "coche","moto","coche" que es como me esta saliendo ahora haciendo un foreach tal que así:

Código PHP:
<?php foreach ($productos as $producto_id => $producto) {
            echo 
panelProductos($producto_id$producto);
?>
Podrían indicarme cómo podría hacer? lo he probado con array_unique y de otras maneras y no he sido capaz. Gracias
  #2 (permalink)  
Antiguo 13/11/2014, 21:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar array único

Para poder usar array_unique() primero debes agrupar los elementos en común, así:

Código PHP:
Ver original
  1. $list = [
  2.   ['x' => 'a', 'y' => 1],
  3.   ['x' => 'b', 'y' => 2],
  4.   ['x' => 'a', 'y' => 3],
  5. ];
  6.  
  7. $groups = [];
  8.  
  9. foreach ($list as $object) {
  10.   foreach ($object as $key => $value) {
  11.     if (!isset($groups[$key])) {
  12.       $groups[$key] = [];
  13.     }
  14.  
  15.     $groups[$key] []= $value;
  16.   }
  17. }
  18.  
  19. foreach ($groups as $key => $group) {
  20.   echo $key, ' = ', join(', ', array_unique($group)), "\n";
  21. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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 12:16.