Autor Tema: PHP Matrices. Arrays arreglos multidimensionales sintaxis anidar array CU00824B#  (Leído 4031 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Dejo la solución a mi ejercicio.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"/> </head>
<body>
<?php
$alumnos[0] = array(11483);
$alumnos[1] = array(61972);
$alumnos[2] = array(31341);

for($i=0;$i<3;$i++){
switch($i){
case 0: echo 'Nivel básico: '; break;
case 1: echo '<br/>Nivel medio: '; break;
case 2: echo '<br/>Nivel de perfeccionamiento: '; break;
}
for($x 0$x 4$x++){ echo $alumnos[$i][$x].' '; }
}
       
   $alumnos = array( array(11483),
 array(61972),
 array(31341) );

echo '<br/>';

for($i=0;$i<3;$i++){
switch($i){
case 0: echo 'Nivel básico: '; break;
case 1: echo '<br/>Nivel medio: '; break;
case 2: echo '<br/>Nivel de perfeccionamiento: '; break;
}
for($x 0$x 4$x++){ echo $alumnos[$i][$x].' '; }
}

$alumnos[0][0] = 1$alumnos[0][1] = 14$alumnos[0][2] = 8$alumnos[0][3] = 3;
$alumnos[1][0] = 6$alumnos[1][1] = 19$alumnos[1][2] = 7$alumnos[1][3] = 2;
$alumnos[2][0] = 3$alumnos[2][1] = 13$alumnos[2][2] = 4$alumnos[2][3] = 1;

echo '<br/>';

for($i=0;$i<3;$i++){
switch($i){
case 0: echo 'Nivel básico: '; break;
case 1: echo '<br/>Nivel medio: '; break;
case 2: echo '<br/>Nivel de perfeccionamiento: '; break;
}
for($x 0$x 4$x++){ echo $alumnos[$i][$x].' '; }
}


?>

</body>
</html>

« Última modificación: 22 de Febrero 2016, 09:36 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenas tardes, introducir un switch dentro de un bucle for utilizando el contador como elemento discriminante para el switch... la verdad es que es raro ver algo así (yo diría que es más común usar if y el operador módulo), pero en el fondo no veo nada incorrecto, y si te funciona...

Aquí hay una respuesta un poco rústica pero más convencional, https://www.aprenderaprogramar.com/foros/index.php?topic=1893.0

Saludos

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Buenas Mario, if con operador modulo? a que te refieres, con if te refieres a 3 if o hay alguna forma de hacerlo mas corto con el modulo ese switch que puse.

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenos días, mencioné el operador módulo pensando que era necesario realizar un conteo del tipo 0-1-2-3 y volver a empezar 0-1-2-3 varias veces, eso te lo permite hacer el operador módulo. Pero mirándolo con calma tampoco es necesario. El código de lo que creo sería una solución más estándar (sin usar el switch... ni siquiera if; también he ordenado por apartados) sería este:

Código: [Seleccionar]
<meta charset="utf-8">
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"/> </head>
<body>
<?php
$idioma[0]='Inglés'$idioma[1]='Francés'$idioma[2]='Alemán'$idioma[3]='Ruso';
$nivel[0]='Nivel Básico'$nivel[1]='Nivel Medio'$nivel[2]='Nivel Perfeccionamiento';

echo '<h2> Apartado a) Ejercicio </h2>';
$alumnosA[0][0] = 1$alumnosA[0][1] = 14$alumnosA[0][2] = 8$alumnosA[0][3] = 3;
$alumnosA[1][0] = 6$alumnosA[1][1] = 19$alumnosA[1][2] = 7$alumnosA[1][3] = 2;
$alumnosA[2][0] = 3$alumnosA[2][1] = 13$alumnosA[2][2] = 4$alumnosA[2][3] = 1;

for($i=0;$i<3;$i++){
for($j 0$j 4$j++){
echo $nivel[$i]. " - ".  $idioma[$j] .": "$alumnosA[$i][$j]. " alumnos <br/>";
}
}

echo '<br/><br/><br/>';
echo '<h2> Apartado b) Ejercicio </h2>';
$alumnosB = array( array(11483),
array(61972),
array(31341) );

for($i=0;$i<3;$i++){
for($j 0$j 4$j++){
echo $nivel[$i]. " - ".  $idioma[$j] .": "$alumnosB[$i][$j]. " alumnos <br/>";
}
}

echo '<br/><br/><br/>';
echo '<h2> Apartado c) Ejercicio </h2>';
$alumnosC[0] = array(11483);
$alumnosC[1] = array(61972);
$alumnosC[2] = array(31341);

for($i=0;$i<3;$i++){
for($j 0$j 4$j++){
echo $nivel[$i]. " - ".  $idioma[$j] .": "$alumnosC[$i][$j]. " alumnos <br/>";
}
}

?>

</body>
</html>

Saludos

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Me parece una solucion muy buena.

Otra podria ser:
   
    for($i=0;$i<3;$i++){
         echo $nivel = (($i=0) ?    'Nivel bajo: ' : (($i=1) ? 'nivel medio: ' : 'nivel alto: ')); }

                  for($x = 0; $x < 4; $x++){ echo $alumnos[$i][$x].' '; }
            }

 

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".