Foros del Web » Programando para Internet » PHP »

Duda con los arrays

Estas en el tema de Duda con los arrays en el foro de PHP en Foros del Web. buenas, estoy haciendo un curso de php y me he puesto a hacer un codigo en el que creo un array y con un bucle ...
  #1 (permalink)  
Antiguo 12/01/2014, 12:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 49
Antigüedad: 16 años, 9 meses
Puntos: 0
Duda con los arrays

buenas, estoy haciendo un curso de php y me he puesto a hacer un codigo en el que creo un array y con un bucle for saco todo lo que hay dentro del array, el problema es que no se imprimir lo que hay dentro del array. Aqui os dejo el código y lo que me sale a mi en vez de lo que deberia aparecer:
Código PHP:
<?
    $comunidad 
= array("1"=>array("com"=>"Andalucia",
                                    
"num"=>"593.6"), 
                        
"2"=>array("com"=>"Aragón",
                                    
"num"=>"600.3"),
                        
"3"=>array("com"=>"Asturias",
                                    
"num"=>"582.9"),
                        
"4"=>array("com"=>"Baleares",
                                    
"num"=>"489.7"),
                        
"5"=>array("com"=>"Canarias",
                                    
"num"=>"573.2"),
                        
"6"=>array("com"=>"Cantabria",
                                    
"num"=>"551.5"),
                        
"7"=>array("com"=>"Castilla y León",
                                    
"num"=>"645.3"),
                        
"8"=>array("com"=>"Castilla la Mancha",
                                    
"num"=>"555.8"),
                        
"9"=>array("com"=>"Cataluña",
                                    
"num"=>"568.3"),
                        
"10"=>array("com"=>"Comunidad Valenciana",
                                    
"num"=>"561.1"),
                        
"11"=>array("com"=>"Extremadura",
                                    
"num"=>"584.3"),
                        
"12"=>array("com"=>"Galicia",
                                    
"num"=>"600.1"),
                        
"13"=>array("com"=>"Madrid",
                                    
"num"=>"613.3"),
                        
"14"=>array("com"=>"Murcia",
                                    
"num"=>"564.7"),
                        
"15"=>array("com"=>"Navarra",
                                    
"num"=>"638.1"),
                        
"16"=>array("com"=>"Pais Vasco",
                                    
"num"=>"637.5"),
                        
"17"=>array("com"=>"La Rioja",
                                    
"num"=>"562.4"),
                        
"18"=>array("com"=>"Ceuta",
                                    
"num"=>"539.7"),
                        
"19"=>array("com"=>"Melilla",
                                    
"num"=>"569.8"));
                            
    echo 
"<table><tr><td>Comunidad Autonoma</td><td>Numero de alumn@s</td><td> % escolarizacion</td>";
    for (
$i 1$i <= sizeof($comunidad); $i++)
    {
        echo 
"<tr>";
        
printf("<td>$comunidad[$i]['com']</td><td>$comunidad[$i]['num']</td></td>%02d<td>",$comunidad[$i]['num']);
        echo 
"</tr>";
    }
    echo 
"</table>";
    echo 
"El porcentaje medio total de escolarización es de: ";
    for (
$i 1$i <= sizeof($comunidad); $i++)
    {
        
$total $comunidad[$i]['num'] + $total;
    }
    
printf("%02d",$total)
?>
y en vezde aparecerme las comunidades autonomas y compañia me aparecelo siguiente:
Array['com'] Array['num']

y en la parte de arriba de todo de la pagina me aparece:
59360058248957355164555556856158460061356463863756 2539569
que es la parte entera de los numeros que hay dentro del array.

un saludo
  #2 (permalink)  
Antiguo 12/01/2014, 13:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda con los arrays

En esta parte:
Código PHP:
Ver original
  1. printf("<td>$comunidad[$i]['com']</td><td>$comunidad[$i]['num']</td></td>%02d<td>",$comunidad[$i]['num']);

Debes decidir qué usar, ¿concatenación o printf()?

Porque la fa forma de concatenación que usas es incorrecta para arrays complejos como el tuyo, en situaciones simples funciona pero no más.

Lee el siguiente tema: http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/01/2014, 13:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Duda con los arrays

Una opción más simple para hacer lo que buscas:

Código PHP:
Ver original
  1. $total = 0;
  2.  
  3. foreach ($comunidad as $k => $array){
  4.     echo "Número de comunidad: " . $k . "<br />";
  5.     foreach ($array as $key => $dato){
  6.         if ($key == "com")
  7.             echo "Comunidad: " . $dato . "<br />";
  8.  
  9.         if ($key == "num"){
  10.             echo "Número: " . $dato . "<br />";
  11.             $total += $dato;
  12.         }
  13.     }
  14.     echo "<br />";
  15. }
  16.  
  17. echo "Total: " . $total;

Esto se vería así: http://ideone.com/JJDm9M

Con el constructor foreach, puedes recorrer arrays y objetos, de una manera similar a como lo harías con estructuras de control como For, While o Do-While.

Saludos
__________________
«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

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