Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Pepote21 en 09 de Agosto 2017, 16:26

Título: PHP Arrays asociativos declarar indices de arreglos como texto string CU00825B
Publicado por: Pepote21 en 09 de Agosto 2017, 16:26
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>
Título: Re:PHP Arrays asociativos declarar indices de arreglos como texto string CU00825B
Publicado por: Ogramar 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