Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Peleando con un array

Estas en el tema de Peleando con un array en el foro de PHP en Foros del Web. Hola a todos, tengo lo siguiente en una variable $coches: print_r($coches) = Código PHP: Array (     [ Toyota ] => Array         (             [ Modelo ] =>  Corolla              ...
  #1 (permalink)  
Antiguo 11/01/2018, 14:36
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 2
Peleando con un array

Hola a todos, tengo lo siguiente en una variable $coches:

print_r($coches) =
Código PHP:
Array
(
    [
Toyota] => Array
        (
            [
Modelo] => Corolla
            
[Precio] => 15.400
            
[Color] => Azul
        
)

Pues por más foreach, for, pasar a json y todo lo que se me ha ocurrido, no soy capaz de extraer "Toyota", de ninguna de las maneras, será que estoy espeso pero no doy con la tecla...
  #2 (permalink)  
Antiguo 11/01/2018, 16:18
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Peleando con un array

Deberia bastar con $coches["Toyota"]
  #3 (permalink)  
Antiguo 11/01/2018, 16:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Peleando con un array

Si lo que buscas es obtener el nombre del índice y dicho arreglo tiene varios índices, puedes usar la estructura foreach de la siguiente manera:

Código PHP:
Ver original
  1. foreach ($coches as $marca => $detalles){
  2.     echo strtoupper($marca) . '<br />';
  3.    
  4.     foreach ($detalles as $clave => $valor){
  5.         echo $clave . ': ' . $valor . '<br />';
  6.     }
  7. }

En la primera iteración, obtendrías algo como esto:

Código HTML:
Ver original
  1. TOYOTA
  2. Modelo: Corolla
  3. Precio: 15.400
  4. Color: Azul

DEMO

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 11/01/2018, 17:08
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 2
Respuesta: Peleando con un array

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Deberia bastar con $coches["Toyota"]
Sí pero no es lo que busco, lo que realmente quiero es hacer un echo $xxxxx y que imprima en pantalla "Toyota", dado que yo desconozco los índices que pueden llegar en el arra. Respecto a esto:


Cita:
Iniciado por Alexis88 Ver Mensaje
Si lo que buscas es obtener el nombre del índice y dicho arreglo tiene varios índices, puedes usar la estructura foreach de la siguiente manera:

Código PHP:
Ver original
  1. foreach ($coches as $marca => $detalles){
  2.     echo strtoupper($marca) . '<br />';
  3.    
  4.     foreach ($detalles as $clave => $valor){
  5.         echo $clave . ': ' . $valor . '<br />';
  6.     }
  7. }

En la primera iteración, obtendrías algo como esto:

Código HTML:
Ver original
  1. TOYOTA
  2. Modelo: Corolla
  3. Precio: 15.400
  4. Color: Azul

Es la solución ganadora. Y el caso es que yo ya había intentado esta opción, peeeeeeeeeero, esto de pelearme con las clases php es lo que tiene, en vez de "foreach $coches as $marca => $datos", yo usé $marca->$datos, como si $datos fuera parte de una clase $marca.... en fin, una raya lo puede cambiar todo, literalmente XD

Gracias a los dos por echarme un cable :)
  #5 (permalink)  
Antiguo 11/01/2018, 19:42
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Peleando con un array

Genial que pudiste resolver, perdón por mi respuesta pero es lo que entendí que querias

Etiquetas: arreglo, json
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 22:54.