Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Array dentro de otro array

Estas en el tema de Array dentro de otro array en el foro de PHP en Foros del Web. Buenas Noches: Tengo el siguiente codigo: <?php $params = array('sucursales' => array('idsucursal'=>'1', 'nombre'=>'2', 'numero'=>'3', 'letra'=>'4', 'domicilio'=>'5', 'codigo_postal'=>'6', 'telefono_1'=>'7', 'telefono_2'=>'8', 'inicio_actividades'=>'9', 'email_1'=>'0', 'email_2'=>'0', 'predes01'=>'0', 'coedes01'=>'0', 'predes02'=>'0', ...
  #1 (permalink)  
Antiguo 25/06/2016, 20:27
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Array dentro de otro array

Buenas Noches:

Tengo el siguiente codigo:
<?php
$params = array('sucursales' => array('idsucursal'=>'1',
'nombre'=>'2',
'numero'=>'3',
'letra'=>'4',
'domicilio'=>'5',
'codigo_postal'=>'6',
'telefono_1'=>'7',
'telefono_2'=>'8',
'inicio_actividades'=>'9',
'email_1'=>'0',
'email_2'=>'0',
'predes01'=>'0',
'coedes01'=>'0',
'predes02'=>'0',
'coedes02'=>'0',
'predes03'=>'0',
'coedes03'=>'0',
) );

print_r($params);

foreach ($params['sucursales'] as $dato);
{
echo $dato['idsucursal'];
echo "<br>";
}

Porque no me muestra el valor 1 ??
Les agradecería si pueden darme una mano!!
  #2 (permalink)  
Antiguo 26/06/2016, 06:55
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Array dentro de otro array

Hola betodaniel61,

el problema reside en la forma de usar el foreach.

El foreach tiene dos formas de usarse...

Primera forma:

Código PHP:

$matriz 
= array("a"=>1"b"=>2"c"=>3);

foreach(
$matriz as $valor)
{
    echo 
$valor// imprimira 1, 2, 3
    
echo $valor["a"]; // imprimira null, null, null

Si te fijas la variable $valor en cada vuelta vale 1, 2 o 3, es decir los valores y no las claves.

La segunda forma de usar foreach es...

Código PHP:
$matriz = array("a"=>1"b"=>2"c"=>3);

foreach(
$matriz as $clave => $valor)
{
    echo 
$valor// imprimira 1, 2, 3
    
echo $valor["a"]; // imprimira null, null, null
    
echo $matriz["a"]; // imprimira 1, 1, 1
    
echo $matriz[$clave]; // imprimira 1,2,3

Espero que estos ejemplos te hayan ayudado a comprender un poco mas como funciona el foreach.

Si te queda alguna duda preguntalo!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 26/06/2016, 10:11
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Respuesta: Array dentro de otro array

Gracias Synkronice, excelente la explicacion pero mi problema pasa por tener un array dentro de otro, de ahi que no pueda iterar dentro del segundo.
Si estoy confundidio o hay algo que no hago bien por favor decime.
Muchas Gracias!!
  #4 (permalink)  
Antiguo 26/06/2016, 10:15
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Array dentro de otro array

Te ha dicho que tu problema no es que tengas un array dentro del otro, sino en la forma de usar el foreach
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #5 (permalink)  
Antiguo 26/06/2016, 10:40
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Array dentro de otro array

El problema que tienes es porque no entiendes como funcionan los arreglos, la solución es sencilla.
Código PHP:
Ver original
  1. $params = array('sucursales' => array('idsucursal'=>'1',
  2. 'nombre'=>'2',
  3. 'numero'=>'3',
  4. 'letra'=>'4',
  5. 'domicilio'=>'5',
  6. 'codigo_postal'=>'6',
  7. 'telefono_1'=>'7',
  8. 'telefono_2'=>'8',
  9. 'inicio_actividades'=>'9',
  10. 'email_1'=>'0',
  11. 'email_2'=>'0',
  12. 'predes01'=>'0',
  13. 'coedes01'=>'0',
  14. 'predes02'=>'0',
  15. 'coedes02'=>'0',
  16. 'predes03'=>'0',
  17. 'coedes03'=>'0',
  18. ) );
  19.  
  20. foreach($params['sucursales'] as $key => $value)
  21. {
  22.     echo $key .":".$value ."\n";
  23. }
Te recomiendo que leas los siguientes temas del manual
http://php.net/manual/en/language.types.array.php
http://php.net/manual/en/control-structures.foreach.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 27/06/2016, 09:50
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Array dentro de otro array

Hola amigo, aparte de lo que te comentan de estructura de arreglos,
tienes un punto y coma al final en tu foreach que también hace q no se recorra de manera "normal"

Código PHP:
Ver original
  1. foreach ($params['sucursales'] as $dato); //Este punto y coma
  2. {
  3. echo $dato['idsucursal'];
  4. echo "<br>";
  5. }

Y como bien te comentan, en todo caso podrías recorrer asi:
Código PHP:
Ver original
  1. foreach ($params['sucursales'] as $dato)
  2. {
  3. echo $dato;
  4. echo "<br>";
  5. }

Saludos!
  #7 (permalink)  
Antiguo 29/06/2016, 07:22
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Respuesta: Array dentro de otro array

Muchas Gracias por tu tiempo, quedó solucionado!!

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 10:16.