Autor Tema: PHP Arrays asociativos declarar indices de arreglos como texto string CU00825B  (Leído 2041 veces)

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Hola a todos. Os paso mí código del ejercicio CU00825B del curso básico de programación web en PHP.

Con respecto a la segunda parte, comentar que para las variables $a y $b he tenido que quitar los acentos cuando creí que podían llevarlos, ya que no me funcionaba. Esto me ha costado un poco. Y como error creo que se me ha quedado la (,) final en ruso que solucionaremos a medida que vayamos aprendiendo.

Con respecto a las variables $a y $b de la última fila yo creía que era más lógico utilizar las variables contadoras $i y $j, las cuales me llevarían a los corchetes que sería lo más lógico y así utilizar las variables $a y $b como variables string pudiendo utilizar los acentos, porque simplemente eran variables a utilizar en texto y que no dependían del array. Espero haberme explicado.

Gracias. Un saludo.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicio tema CU00824B aprenderaprogramar.com</title>
        <meta charset="utf-8">
        <style type="text/css">
           
        </style>
        <script type="text/javascript">   
           
        </script>
    </head>
    <body>
    <?php
    $nalumnos[0]['ingles']=1;
$nalumnos[0]['frances']=14;
$nalumnos[0]['aleman']=8;
$nalumnos[0]['ruso']=3;
$nalumnos[1]['ingles']=6;
$nalumnos[1]['frances']=19;
$nalumnos[1]['aleman']=7;
$nalumnos[1]['ruso']=2;
$nalumnos[2]['ingles']=3;
$nalumnos[2]['frances']=13;
$nalumnos[2]['aleman']=4;
$nalumnos[2]['ruso']=1;
$nivel=array('basico','medio','avanzado');
for($i=0;$i<3;$i++){
echo "En el nivel ".$nivel[$i].' hay:<br/>';
echo $nalumnos[$i]['ingles'].($nalumnos[$i]['ingles']==1?' alumno':' alumnos').' en inglés,<br/>';
echo $nalumnos[$i]['frances'].($nalumnos[$i]['frances']==1?' alumno':' alumnos').' en francés,<br/>';
echo $nalumnos[$i]['aleman'].($nalumnos[$i]['aleman']==1?' alumno':' alumnos').' en alemán y<br/>';
echo $nalumnos[$i]['ruso'].($nalumnos[$i]['ruso']==1?' alumno':' alumnos').' en ruso.<br/>';
}
echo "<br/>";
        
?>

        <?php
    $nalumnos['basico']['ingles']=1;
$nalumnos['basico']['frances']=14;
$nalumnos['basico']['aleman']=8;
$nalumnos['basico']['ruso']=3;
$nalumnos['medio']['ingles']=6;
$nalumnos['medio']['frances']=19;
$nalumnos['medio']['aleman']=7;
$nalumnos['medio']['ruso']=2;
$nalumnos['avanzado']['ingles']=3;
$nalumnos['avanzado']['frances']=13;
$nalumnos['avanzado']['aleman']=4;
$nalumnos['avanzado']['ruso']=1;
for($i=0;$i<3;$i++){
if($i==0){$b='basico';
}else if($i==1){$b='medio';
}else{$b='avanzado';
}
echo "En el nivel ".$b.' hay:<br/>';
for($j=0;$j<4;$j++){
if($j==0){$a='ingles';
}else if($j==1){$a='frances';
}else if($j==2){$a='aleman';
}else {$a='ruso';
}
echo $nalumnos[$b][$a].($nalumnos[$b][$a]==1?' alumno':' alumnos').' en '.$a.',<br/>';
}
}
        
?>

     </body>
</html>
« Última modificación: 12 de Septiembre 2017, 19:32 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:PHP Arrays asociativos declarar indices de arreglos como texto string CU00825B
« Respuesta #1 en: 12 de Septiembre 2017, 19:33 »
Buenas, ejercicio bien resuelto

Aclarar para quien tenga dificultades con una expresión como esta:

echo $nalumnos[$b][$a].($nalumnos[$b][$a]==1?' alumno':' alumnos').' en '.$a.',<br/>';

Que lo que se consigue aquí es que si el valor $nalumnos[$b][$a] es 1, se muestre "alumno" en singular, mientras que si es distinto de 1 se mostrará "alumnos" en plural. Este operador condicional se explica en la entrega CU00817B del curso.

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".