Foros del Web » Programando para Internet » PHP »

Otro Array Mas!

Estas en el tema de Otro Array Mas! en el foro de PHP en Foros del Web. Amigos, Estoy jugando con algunos arrays multidimensionales pero tengo un problema. Yo no se si es posible usar un foreach para listar esto: Código PHP: ...
  #1 (permalink)  
Antiguo 05/07/2007, 09:07
Avatar de LatamHost  
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 522
Antigüedad: 19 años, 6 meses
Puntos: 1
Otro Array Mas!

Amigos,

Estoy jugando con algunos arrays multidimensionales pero tengo un problema. Yo no se si es posible usar un foreach para listar esto:


Código PHP:
$apellidos = array("Garcia","Graziani","Valenzuela","Casas","Meyer");
$nombres = array("Alberto","Arnaldo","Lorena","Nicolas","Ivan");

$agenda = array("Nombre" => $nombres,"Apellido" => $apellidos,);

foreach (
$agenda as $key => $value)
{
echo 
"Su nombre es: <b>" $key "</b> y su apellido es <b>" $value "</b><br>";


Estoy equivocado?

Gracias!!
__________________
MiRevolucionDigital.com - Unete a la revolución digital!
  #2 (permalink)  
Antiguo 05/07/2007, 09:28
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Otro Array Mas!

Al ser un arreglo de arreglos o un arreglo que contiene varios arreglos tendrias que usar un segundo foreach para recorrer los arreglos dentro del arreglo es decir:

Código PHP:
<?php 
$apellidos 
= array("Garcia","Graziani","Valenzuela","Casas","Meyer");
$nombres = array("Alberto","Arnaldo","Lorena","Nicolas","Ivan");

$agenda = array("Nombre" => $nombres,"Apellido" => $apellidos,);

foreach (
$agenda as $key => $value)
{
    foreach (
$value as $t)
    echo 
"<b>".$t."</b><br>";
}
//Ya lo probe = P
?>
Saludillos.
  #3 (permalink)  
Antiguo 05/07/2007, 09:57
Avatar de LatamHost  
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 522
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Otro Array Mas!

Gracias mauled!!!! :D
__________________
MiRevolucionDigital.com - Unete a la revolución digital!
  #4 (permalink)  
Antiguo 05/07/2007, 10:03
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Otro Array Mas!

Código PHP:
$agenda array_merge($nombres,$apellidos); 
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #5 (permalink)  
Antiguo 05/07/2007, 21:37
Avatar de LatamHost  
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 522
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Otro Array Mas!

Ahora tengo otro problema... Estoy intentando sumar en un array la poblacion de 10 ciudades, pero por alguna razon el array no parte desde nueva york sino desde abajo, me explico:

Código PHP:
$total 0;
$cities = array("New York" => "8008278",
                
"Los Angeles" => "3694820",
                
"Chicago" => "2896016",
                
"Houston" => "1953631",
                
"Philadelphia" => "1517550",
                
"Phoenix" => "1321045",
                
"San Diego" => "1223400",
                
"Dallas" => "1188580",
                
"San Antonio" => "1144646",
                
"Detroit" => "951270");

echo 
"<table width=300px height=350px cellpadding=0px cellspacing=0px border=1px>
<tr>
<td>City</td><td>Population</td>
</tr>"
;
foreach (
$cities as $key => $value)
{
    echo 
"<tr><td>" $key "</td><td>" $value "</td></tr>";
}
echo 
"</table>";

reset($cities);

for (
$i=0$i<count($cities); $i++)
{
    echo 
"La suma de " $total " mas la suma de " $value " es de ";
    
$total $total $value;
    echo 
$total "<br>";
    
$value next($cities);
}

echo 
"Total population of these 10 cities is: " $total

Pero me da lo siguiente:

Código HTML:
La suma de 0 mas la suma de 951270 es de 951270
La suma de 951270 mas la suma de 3694820 es de 4646090
La suma de 4646090 mas la suma de 2896016 es de 7542106
La suma de 7542106 mas la suma de 1953631 es de 9495737
La suma de 9495737 mas la suma de 1517550 es de 11013287
La suma de 11013287 mas la suma de 1321045 es de 12334332
La suma de 12334332 mas la suma de 1223400 es de 13557732
La suma de 13557732 mas la suma de 1188580 es de 14746312
La suma de 14746312 mas la suma de 1144646 es de 15890958
La suma de 15890958 mas la suma de 951270 es de 16842228
Total population of these 10 cities is: 16842228

Que estoy haciendo mal?

Gracias de nuevo!!! :D
__________________
MiRevolucionDigital.com - Unete a la revolución digital!
  #6 (permalink)  
Antiguo 05/07/2007, 21:46
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Otro Array Mas!

Puedes ordenar tu array con sort($tu_arreglo);
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #7 (permalink)  
Antiguo 06/07/2007, 05:23
Avatar de LatamHost  
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 522
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Otro Array Mas!

Me refiero a que no esta leyendo el primer valor:

$cities = array("New York" => "8008278",

La suma de 0 mas la suma de 951270 es de 951270
Cuando debiera ser 0 + 8008278
__________________
MiRevolucionDigital.com - Unete a la revolución digital!
  #8 (permalink)  
Antiguo 06/07/2007, 06:46
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Otro Array Mas!

Lo que pasa es que en el foreach que estás haciendo, la variable $value termina con el valor del último elemento (951270).

Cuando empiezas a iterar en el for, utilizas $value. Tú esperas que tome el valor del primer elemento, pero en ningún lugar lo has definido.

En todo caso deberías hacer algo como:
Código PHP:
reset($cities);
$value current($cities);

for (
$i=0$i<count($cities); $i++) 
Saludos,
  #9 (permalink)  
Antiguo 06/07/2007, 12:49
Avatar de LatamHost  
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 522
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Otro Array Mas!

Gracias jpinedo!! Eso era todo lo que me faltaba!!:

$value = current($cities);
__________________
MiRevolucionDigital.com - Unete a la revolución digital!
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:19.