Estoy creando un menu recursivo el cual al dar click en cada elemento abrira un PDF en un objeto Embed, q se encuentra en la parte inferior de la pagina, todo funciona con el primer elemento, pero cuando debe crear el segundo elemento de cada año no lo hace, ese es mi problema, yo se no es algo complicado pero no encuentro solucion a esto, aqui mi codigo PHP:
Código PHP:
<?php
echo "<div id='cssmenu'>";
echo "<ul>";
echo "<li class='has-sub last'><a href='#'><span>Please select a Year</span></a>";
echo "<ul>";
$dir = new DirectoryIterator('/usr/apps/webdata/backend/assets/newsletters/temp');
$list = array();
foreach($dir as $file)
{
if($file->isDot())
continue;
$string = $file;
if(preg_match_all("#(\d{1,})#", $string, $matches, PREG_SET_ORDER))
{
foreach($matches as $match)
{
$issue = $match[0];
while (list($key, $value) = each($match))
{
//TOMA EL AÑO
if (strlen ($value) == 4)
{
$uyear = $value;
//echo "Year: $uyear \n";
}
// TOMA EL NUMERO DE ARTICULO
elseif (strlen ($value) == 1)
{
$uissue = $value;
//echo "Issue: $uissue \n";
}
}
}
}
//CREA EL BUCLE POR CADA AÑO
if(!isset($list[$uyear]))
{
$list[$uyear] = array();
echo "<li class='has-sub'><a href='#'><span>" . $uyear . " </span></a>";
}
echo "<ul>";
//CREA EL BUCLE POR CADA ARTICULO DE CADA AÑO
if(!in_array($uissue, $list[$uyear]))
{
$list[$uyear][] = $uissue;
$a = count($uissue);
for($i=0;$i<$a; $i++)
{
echo "<li class='last'><a href='#' onclick=myPDF('".$file."')> Issue# ".$uissue."</a></li>";
}
}
echo "</ul>";
echo "</li>";
}
echo "</ul>";
echo "</li>";
echo "</ul>";
echo "</div>";
?>
Mi problema esta en el bucle donde se deberia imprimir cada Numero de Articulo, especificamente aqui:
Código PHP:
if(!in_array($uissue, $list[$uyear]))
{
$list[$uyear][] = $uissue;
$a = count($uissue);
for($i=0;$i<$a; $i++)
{
echo "<li class='last'><a href='#' onclick=myPDF('".$file."')> Issue# ".$uissue."</a></li>";
}
}
Mi Foreach termina en el primer articulo q encuentra y deja de crear las ramas del menu, esta es mi impresion de pantalla:
Código:
Array
(
[2014] => Array
(
[0] => 2
)
[2013] => Array
(
[0] => 1
)
[2015] => Array
(
[0] => 2
)
)
Cuando en realidad deberia ser esta:
Código:
Array
(
[2014] => Array
(
[0] => 2
[1] => 4
[2] => 3
[3] => 1
)
[2013] => Array
(
[0] => 1
[1] => 3
[2] => 4
[3] => 2
)
[2015] => Array
(
[0] => 2
[1] => 4
[2] => 3
[3] => 1
)
)
Y tambien necesito ordenar mi respuesta por Año y por Numero de Articulo, he intentado con asort(), pero no he obtenido el resultado q ando buscando, alguien q me puede ayudar? gracias amigos!!!