Autor Tema: PHP Cómo crear arrays (arreglos) multidimensionales matrices ejercicio CU00824B  (Leído 3694 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas noches, aquí dejo una posible solución del ejercicio CU00824B del curso PHP desde cero.

Citar
EJERCICIO

Crea el código PHP de 3 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 filas que representarán al Nivel básico, medio y de perfeccionamiento y 4 columnas en las que figurarán los idiomas (0 = Inglés, 1 = Francés, 2 = Alemán y 3 = Ruso). Se pide realizar la declaración de la matriz y asignarle los valores indicados en la siguiente imagen a cada elemento de las siguientes maneras (crea un archivo php por cada una de estas maneras):



Citar
a) Con una sintaxis basada exclusivamente en índices, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Código: [Seleccionar]
<?php	$idiomas = ["inglés", "francés", "alemán", "ruso"];	$alumnos["básico"][0] = 1;	$alumnos["básico"][1] = 14;	$alumnos["básico"][2] = 8;	$alumnos["básico"][3] = 3;	$alumnos["medio"][0] = 6;	$alumnos["medio"][1] = 19;	$alumnos["medio"][2] = 7;	$alumnos["medio"][3] = 2;	$alumnos["perfeccionamiento"][0] = 3;	$alumnos["perfeccionamiento"][1] = 13;	$alumnos["perfeccionamiento"][2] = 4;	$alumnos["perfeccionamiento"][3] = 1;		for($i = 0; $i < 4; $i++){		echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["básico"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";	}?>

Citar
b) Con una sintaxis basada en el uso anidado de la palabra array, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Código: [Seleccionar]
<?php 	$idiomas = ["inglés", "francés", "alemán", "ruso"];	$alumnos = array(		array(1, 14, 8, 3),		array(6, 19, 7, 2),		array(3, 13, 4, 1),	);	for($i = 0; $i < 4; $i++){		echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos[0][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos[1][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos[2][$i]." alumnos <br><br><br>";	};?>

En este código no se como darles índice a los arrays que están dentro del array. Quería poner algo como:

Código: [Seleccionar]
<?php 	$idiomas = ["inglés", "francés", "alemán", "ruso"];	$alumnos = array(		"básico"(1, 14, 8, 3),		"medio"(6, 19, 7, 2),		"perfeccionamiento"(3, 13, 4, 1),	);	for($i = 0; $i < 4; $i++){		echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["básico"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";	};?>

pero no funciona. El array no acepta algo como un "nombre".

Citar
c) Con una sintaxis que combine el uso de array y el uso de índices, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Código: [Seleccionar]
<?php 	$idiomas = ["inglés", "francés", "alemán", "ruso"];	$alumnos["básico"] = array(1, 14, 8, 3);	$alumnos["medio"] = array(6, 19, 7, 2);	$alumnos["perfeccionamiento"] = array(3, 13, 4, 1);	for($i = 0; $i < 4; $i++){		echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["básico"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";	}?>

Gracias.
« Última modificación: 08 de Mayo 2016, 11:00 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU00824B Matrices, Array en PHP
« Respuesta #1 en: 06 de Mayo 2016, 12:32 »
Hola dimiste.

Veo todo correcto.

En cuanto a lo que comentas sobre el apartado b, sería de esta forma:

Código: [Seleccionar]
<?php 	$idiomas = ["inglés", "francés", "alemán", "ruso"];	$alumnos = array("basico" => array(1, 14, 8, 3),					"medio" => array(6, 19, 7, 2),					"perfeccionamiento" => array(3, 13, 4, 1)				);	for($i = 0; $i < 4; $i++){		echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["basico"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";		echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";	};?>

Es algo que podrás aprender en el siguiente tema del curso.

Saludos. ;D

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00824B Declaración arrays multidimensionales en PHP
« Respuesta #2 en: 06 de Mayo 2016, 13:45 »
Hola, Pedro.

Tienes razón, en la siguiente entrega nos lo explicaban, aunque no exactamente de la forma de síntaxis que me has puesto tú. Y yo buscaba lo que me explicas tú. Con lo cual, me lo apunto en el cuaderno donde me apunto todo lo que no sé y a consultarlo cuando lo necesite.

Saludos :)

 

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