Autor Tema: Arrays asociativos (arreglos). Concepto y formas de declaración y uso. CU00825B  (Leído 3064 veces)

victorchinea

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
Hola. Mi solución al ejercicio (CU00825B) del tutorial pdf de programación PHP. Me he liado un poco y no sé si está bien planteado como lo hice.

¡¡Un saludo!!

Citar
Crea el código PHP de dos archivos que den respuesta al siguiente planteamiento:

Queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 niveles: Nivel básico, medio y de perfeccionamiento, que se corresponden con las filas de la matriz, y 4 idiomas (Inglés, Francés, Alemán y Ruso), que se corresponden con las columnas de la matriz. Se pide realizar la declaración de la matriz y asignarle los valores indicados en la siguiente imagen cumpliendo con:

a) Con una sintaxis ejemplo de uso de arrays asociativos donde el primer índice del array (niveles) es un número y el segundo un texto indicativo del idioma. Se debe mostrar por pantalla los alumnos que existen en cada nivel e idioma. Ejemplo: numeroAlumnos[0]['frances'] representará el número de alumnos que existen en el nivel básico, idioma francés.

b) Con una sintaxis ejemplo de uso de arrays asociativos donde tanto el primer índice del array (niveles) como el segundo (idiomas) sea un texto indicativo. Se debe mostrar por pantalla los alumnos que existen en cada nivel e idioma. Ejemplo: numeroAlumnos['basico']['frances'] representará el número de alumnos que existen en el nivel básico, idioma francés.

Código: [Seleccionar]
<?php

$idioma 
= array ('Inglés''Francés''Alemán''Ruso');
$nivel = array ('básico''medio''perfeccionamiento');

echo 
'<h2>a)';
$numeroAlumnos= array(
  array(
'Inglés'=> 1,'Francés' => 14,'Alemán' => 8,'Ruso' => 3),
  array(
'Inglés'=> 6,'Francés' => 19,'Alemán' => 7,'Ruso' => 2),
  array(
'Inglés'=> 3,'Francés' => 13,'Alemán' => 4,'Ruso' => 1)
);

for (
$niv=0$niv<$niv++) {
  echo 
'<h3>Nivel: '.$nivel[$niv].'</h3>';
    for (
$idi=0$idi<4$idi++) {
      if (
$numeroAlumnos[$niv][$idioma[$idi]]==1) {
        
$num_alum 'alumno';
      }else {
        
$num_alum 'alumnos';
      }
      echo 
$idioma[$idi].' = '.$numeroAlumnos[$niv][$idioma[$idi]].' '.$num_alum.'&nbsp &nbsp &nbsp';
    }
  echo 
"<hr />";
}

echo 
'<h2>b)';
$numeroAlumnos_b['básico']= array('Inglés'=> 1,'Francés' => 14,'Alemán' => 8,'Ruso' => 3);
$numeroAlumnos_b['medio']= array('Inglés'=> 6,'Francés' => 19,'Alemán' => 7,'Ruso' => 2);
$numeroAlumnos_b['perfeccionamiento'] = array('Inglés'=> 3,'Francés' => 13,'Alemán' => 4,'Ruso' => 1);

for (
$niv=0$niv<$niv++) {
  echo 
'<h3>Nivel: '.$nivel[$niv].'</h3>';
    for (
$idi=0$idi<4$idi++) {
      if (
$numeroAlumnos_b[$nivel[$niv]][$idioma[$idi]]==1) {
        
$num_alum 'alumno';
      }else {
        
$num_alum 'alumnos';
      }
      echo 
$idioma[$idi].' = '.$numeroAlumnos_b[$nivel[$niv]][$idioma[$idi]].' '.$num_alum.'&nbsp &nbsp &nbsp';
    }
  echo 
"<hr />";
}

?>
« Última modificación: 13 de Octubre 2020, 10:24 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Buenas victorchinea, el ejercicio está bien resuelto. Este ejercicio puede resolverse de distintas maneras, por ejemplo como se ha hecho en https://aprenderaprogramar.com/foros/index.php?topic=4123.0 es otra forma.

Respecto a los índices de los arrays asociativos, en general recomendamos no usar tildes ni eñes en cualquier cosa que no sea texto, por ejemplo como índice del array en lugar de Inglés usaríamos Ingles. Esto es simplemente para estar tranquilos de evitar problemas con juegos de caracteres que pueden no ser reconocidos en determinados entornos.

En el título del tema te ha faltado incluir "PHP" (el lenguaje de que se trata), importante para que se sepa con qué está relacionado el hilo, ten esto en cuenta cuando publiques (ver indicaciones en https://aprenderaprogramar.com/foros/index.php?topic=1460.0)

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