Hola. Se me complico hacer un array multidimensional, y se me fue el dia en esto. Perdi el buen ritmo de la semana!
Tengo un bucle que consulta a mysql, y arma un listado de fotos. Si esas fotos tienen adjuntos (ref) entonces tengo otro bucle para los adjuntos.
Los adjuntos estas declarados en un campor "ref". En mysql los guardo separados por comas. Ej: 40,50,24,16,57
Todas las fotos tienen un id, y la ref hace referencia a ese id.
Necesito este resultado:
Código PHP:
[75] => Array
(
[titulo] =>
[id_foto] => 75_copa.jpg
[descripcion] =>
[lightbox] => Array
(
[60] => Array
(
[id] => 60
[ruta] => fotos/1/60_copa2.jpg
[descripcion] =>
)
[66] => Array
(
[id] => 66
[ruta] => fotos/1/66_Guillermo_perez_perfil.jpg
[descripcion] =>
)
[72] => Array
(
[id] => 72
[ruta] => fotos/1/72_kandinsky0001.gif
[descripcion] =>
)
)
)
Y lo estoy obteniendo, pero
a partir de que alguno de mis item tiene anexos, todos los que le siguen van heredando esos anexos aunque no les correspondan.
Este es el bucle:
Código PHP:
while($item = mysql_fetch_array($resultado))
{
$return["items"][$item['id']]['titulo']= $item['titulo'];
$return["items"][$item['id']]['id_foto']= $item['id_foto'];
$return["items"][$item['id']]['descripcion']= $item['descripcion'];
if ($item['ref']!="0") {
// listado de fotos que se van a anexar a $item['id']
$ind = $item['ref'];
$ids = explode(",",$ind);
foreach ($ids as $id)
{
$id = trim($id);
if ($id==""){} //elimino elementos vacios
$referidas = mysql_query("SELECT id, ruta, id_foto, titulo FROM publicaciones WHERE id = '$ind'");
while($anexa = mysql_fetch_array($referidas)){
$ruta = str_replace("../","",$anexa['ruta']);
$lista_fotos[$anexa['id']]['id']= $anexa['id'];
$lista_fotos[$anexa['id']]['ruta']= $ruta.$anexa['id_foto'];
$lista_fotos[$anexa['id']]['descripcion']= $anexa['titulo'];
}; // end while
$return["items"][$item['id']]['lightbox'] = $lista_fotos;
}
}
};