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

¡Buenas!

Tengo el siguiente warning:

Warning: Invalid argument supplied for foreach() in [ruta-del-archivo] on line 32

El código es el siguiente:
Código PHP:

[HIGHLIGHT="PHP"]
<?php
$nav 
= array("Manualidades básicas""Fofuchas""Literatura""Especiales"); // Menú principal
// Acceso a las secciones:
$dir_basicas "manualidades-basicas/";
$dir_fofuchas "fofuchas/";
$dir_literatura "literatura/";
$dir_especiales "especiales/";

// Acceso a las subsecciones:
$sub_basicas = array($dir_basicas."mandalas.php"$dir_basicas."marcapaginas.php"$dir_basicas."posavasos.php"$dir_basicas."pulseras-de-gomitas.php"); // Sub-menú del menú de Manualidades Básicas
$sub_fofuchas = array($dir_fofuchas."que-son-las-fofuchas.php"$dir_fofuchas."galeria-de-fofuchas.php"$dir_fofuchas."fofucha-personalizada.php"); // Sub-menú del menú de Fofuchas
$sub_literatura = array($dir_literatura."narrativa.php"$dir_literatura."relatos.php"$dir_literatura."poesias.php"); // Sub-menú de Literatura
$sub_especiales = array($dir_especiales."organitas.php"$dir_especiales."cuadros-con-mandalas.php"$dir_especiales."cuadros-personalizados.php"); // Sub-menú de Especiales

function submenu ($elemento) {
    global 
$sub_basicas$sub_fofuchas$sub_literatura$sub_especiales;
    
$sub;
    switch(
$elemento) {
        case 
"Manualidades básicas":
            
$sub $sub_basicas;
            break;
        case 
"Fofuchas":
            
$sub $sub_fofuchas;
            break;
        case 
"Literatura":
            
$sub $sub_literatura;
            break;
        default:
            
$sub $sub_especiales;
            break;
    };
    
    foreach (
$elemento as $e) {
        echo 
"<li>$e
                        <ul>"
;
            foreach (
$sub as $nombre => $dir) {
                    echo 
"<li><a href=\"$dir\">$nombre</a></li>
                            </ul>
                        </li>"
;
            }
    }
}

foreach (
$nav as $emp) { // $emp = elemento de menu principal
                            
submenu($emp);
}
?>
[/HIGHLIGHT]
Algunas veces entiendo con relativa facilidad la causa de los warnings y demás, pero éste se me resiste... Ojalá hubiese algún programa que te explicase el por qué de ese error...

En fin, ¿en qué consiste ese error? Y, sobre todo, ¿cómo puedo solucionarlo?

¡Gracias por adelantado!