Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/07/2014, 04:12
LordYo
 
Fecha de Ingreso: julio-2014
Ubicación: España
Mensajes: 24
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Necesito solucionar problema warning con foreach

Ya está... He visto mi error. Le mandaba "$sub_basicas" en lugar de "$basicas". En la que le mandaba, sólo tenía las direcciones. En cambio, en la otra tenía ambas en un array asociativo (el nombre y la dirección, extraida de su posición en la variable que por error le mandaba)
He tenido que incluir todas esas variables en la función, para que fuesen globales, cambiando las que tenían el "sub_" y añadiento las que tenían "dir_" y la propia "nav". Quizá de ahí venía también el error. Del hecho de que le enviaba el nav simplemente... y usaba como referencia las variables equivocadas.

Ahora está así la función, pero me gustaría saber, antes de darlo por solucionado, si se puede ahorrar código.

Fuera de la función: exactamente igual, solo que ahora no son necesarios los parámetros...)

La función:

Código PHP:
Ver original
  1. function submenu () {
  2.     global $nav, $basicas, $fofuchas, $literatura, $especiales, $dir_basicas, $dir_fofuchas, $dir_literatura, $dir_especiales;
  3.     $sub;
  4.     $dir;
  5.     foreach ($nav as $e) {
  6.         switch($e) {
  7.             case "Manualidades básicas":
  8.                 $sub = $basicas;
  9.                 $dir = $dir_basicas;
  10.                 break;
  11.             case "Fofuchas":
  12.                 $sub = $fofuchas;
  13.                 $dir = $dir_fofuchas;
  14.                 break;
  15.             case "Literatura":
  16.                 $sub = $literatura;
  17.                 $dir = $dir_literatura;
  18.                 break;
  19.             default:
  20.                 $sub = $especiales;
  21.                 $dir = $dir_especiales;
  22.                 break;
  23.             };
  24.             echo "<li><a href=\"$dir\">$e</a>
  25.                             <ul>";
  26.                 foreach ($sub as $nombre => $direccion) {
  27.                         echo "<li><a href =\"$direccion\">$nombre</a></li>";
  28.                 }
  29.             echo "      </ul>
  30.                     </li>"; }
  31. }

Última edición por LordYo; 04/07/2014 a las 04:21 Razón: Correcciones menores...