¡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!