Buenas dejo mi ejercicio CU00826B, y una cuestión al final que no he podido resolver con lo que encontré por internet.
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"/>
<body>
<?php
/*EJERCICIO 1*/
$paisLimitrofe = array('Portugal', 'Francia', 'Baleares', 'Marruecos');
for($i=0; $i < count($paisLimitrofe); $i++){
echo $paisLimitrofe[$i].'<br/>';
}
echo '<hr/>';
foreach($paisLimitrofe as $pais){
echo $pais.'<br/>';
}
echo '<hr/>';
/*EJERCICIO 2*/
$equipo = array(portero=>'Casillas', defensa=>'Hierro', medio=>'Ces', delantero=>'Ronaldo');
foreach($equipo as $posicion=>$jugador) {
echo "El " . $posicion . " es " . $jugador;
}
/*Parece ser que lo que hace es asignar una especie de etiqueta al texto que luego puede recuperarse con una variable, y así no necesitas
usar condicionales para mostrar el texto asociado a la variable que te interese */
echo '<hr/>';
/*EJERCICIO 3*/
/*A*/
$tablaJugadores[0][0][0]='Frank';
$tablaJugadores[0][0][1]='Pepe';
$tablaJugadores[0][0][2]='Luis';
$tablaJugadores[0][0][3]='Raul';
$tablaJugadores[0][1][0]='Tiger';
$tablaJugadores[0][1][1]='Mourin';
$tablaJugadores[0][1][2]='Katz';
$tablaJugadores[0][1][3]='Alberto';
$tablaJugadores[1][0][0]='Suarez';
$tablaJugadores[1][0][1]='Koltz';
$tablaJugadores[1][0][2]='Fernandez';
$tablaJugadores[1][0][3]='Ramirez';
$tablaJugadores[2][0][0]='Higuita';
$tablaJugadores[2][0][1]='Mel';
$tablaJugadores[2][0][2]='Rubens';
$tablaJugadores[2][0][3]='Messi';
$tablaJugadores[2][1][0]='Kostenmeiner';
$tablaJugadores[2][1][1]='Lenkins';
$tablaJugadores[2][1][2]='Marash';
$tablaJugadores[2][1][3]='Juanes';
for($x=0; $x<count($tablaJugadores); $x++){
echo $pais = ($x==0) ? '<br/><span style="font-weight:bold">España</span><br/>' : (($x==1) ? '<br/><span style="font-weight:bold">Mexico</span><br/>' :
'<br/><span style="font-weight:bold">Argentina</span><br/>');
//echo implode(' ', tablaJugadores[$x]);
for($i=0; $i<count($tablaJugadores[$x]); $i++){
echo $equipo = ($i==0) ? '<br/><li>Equipo1</li><br/>' : '<br/><li>Equipo2</li><br/>';
//echo implode(' ', tablaJugadores[$x][$i]);
for($j=0; $j<count($tablaJugadores[$x][$i]); $j++){
//echo implode(' ', tablaJugadores[$x][$i][$j]);
echo $posicion = ($j==0) ? 'Portero: ' : (($j==1) ? 'Defensa: ' : (($j==2) ? 'Medio: ' : 'Delantero: '));
echo $tablaJugadores[$x][$i][$j].'<br/>';
}
}
}
echo '<hr/>';
/*B*/
$tablaJugadores[0][0][0]='Frank';
$tablaJugadores[0][0][1]='Pepe';
$tablaJugadores[0][0][2]='Luis';
$tablaJugadores[0][0][3]='Raul';
$tablaJugadores[0][1][0]='Tiger';
$tablaJugadores[0][1][1]='Mourin';
$tablaJugadores[0][1][2]='Katz';
$tablaJugadores[0][1][3]='Alberto';
$tablaJugadores[1][0][0]='Suarez';
$tablaJugadores[1][0][1]='Koltz';
$tablaJugadores[1][0][2]='Fernandez';
$tablaJugadores[1][0][3]='Ramirez';
$tablaJugadores[2][0][0]='Higuita';
$tablaJugadores[2][0][1]='Mel';
$tablaJugadores[2][0][2]='Rubens';
$tablaJugadores[2][0][3]='Messi';
$tablaJugadores[2][1][0]='Kostenmeiner';
$tablaJugadores[2][1][1]='Lenkins';
$tablaJugadores[2][1][2]='Marash';
$tablaJugadores[2][1][3]='Juanes';
foreach($tablaJugadores as $pais){
echo '<br/><span style="font-weight:bold">País</span><br/>';
foreach($pais as $equipo){
echo 'Equipo<br/>';
foreach($equipo as $posicion){
echo $posicion.'<br/>';
}
}
}
echo '<hr/>';
/*C*/
$tablaJugadores = array(
'España'=>array('Equipo1'=>array('portero' => 'Frank','defensa' => 'Pepe', 'medio' => 'Luis', 'delantero' => 'Raul'),
'Equipo2'=>array('portero' => 'Tiger', 'defensa' => 'Mourin', 'medio' => 'Katz', 'delantero' => 'Alberto')),
'Mexico'=>array('Equipo1'=>array('portero' => 'Suarez', 'defensa' => 'Koltz', 'medio' => 'Fernandez', 'delantero' => 'Ramirez')),
'Argentina'=>array('Equipo1'=>array('portero' => 'Higuita', 'defensa' => 'Mel', 'medio' => 'Rubens', 'delantero' => 'Messi'),
'Equipo2'=>array('portero' => 'Kostenmeiner', 'defensa' => 'Lenkins', 'medio' => 'Marash', 'delantero' => 'Juanes'))
);
foreach($tablaJugadores as $pais){
echo '<br/><span style="font-weight:bold">País</span><br/>';
foreach($pais as $equipo){
echo 'Equipo<br/>';
foreach($equipo as $position){ echo $position.'<br/>'; }
}
}
?>
</body>
</html>
La pregunta es, como logro mostrar la clave asignada a un valor (por ejemplo: 'España', 'Defensa') en un loop foreach.
He intentado,
foreach ($array as $valor=>$elementoArray){}
pero me retorna el valor numerico, osea 0,1,2.... no el texto que le he asociado.
tampoco me sirvio ni la función key($elementoArray), ni $key(array) ni alguna otra que probé. (no sé si porque declaré mal el array o algo así o porque es)
Si alguien puede mostrarme como hacerlo con mi codigo mismo, se lo agradeceré, pues la utilidad es enorme.
Yo solo lo he logrado sin las comillas, con etiquetas asociadas:
/*C*/
$tablaJugadores = array(
España=>array(Equipo1=>array(portero => Frank,defensa => 'Pepe', medio => 'Luis', delantero => 'Raul'),
Equipo2=>array(portero => 'Tiger', defensa => 'Mourin', medio => 'Katz', delantero => 'Alberto')),
Mexico=>array(Equipo1=>array(portero => 'Suarez', defensa => 'Koltz', medio => 'Fernandez', delantero => 'Ramirez')),
Argentina=>array( Equipo1=>array(portero => 'Higuita', defensa => 'Mel', medio => 'Rubens', delantero => 'Messi'),
Equipo2=>array(portero => 'Kostenmeiner', defensa => 'Lenkins', medio => 'Marash', delantero => 'Juanes'))
);
foreach($tablaJugadores as $key=>$pais){
echo '<br/><span style="font-weight:bold">País: '.$key.'</span><br/>';
foreach($pais as $key=>$equipo){
echo 'Equipo:'.$key.'<br/>';
foreach($equipo as $key=>$position){ echo $key.': '.$position.'<br/>'; }
}
}
Pero lo interesante es poder lograrlo con 'España' pues así sirve para cuando recoges información de base de datos, etc.
Gracias.