Upss después de darle tantas y tantas vueltas a mis neuronas(las pobres deben estar quemadas :) ) he resuelto mi problema con un pequeño detalle, ¡invertir los ciclos!. Gracias a todos los que me ayudaron a pensar. Ahora el código me ha quedado así:
Código PHP:
$query = mysql_query("SELECT dir.idsitio as id,dir.titulo as titulo,dir.descripcion as descripcion,dir.direccion as direccion,dir.idcategoria as idcatondir,dir.fecha as fecha,dir.donde as donde,dir.publico as publico,catdir.idcategoria as idcatoncat,catdir.titulo as titulocat FROM directorio dir, categoriadirectorio catdir WHERE idsitio='".$_GET['idsitio']."' AND dir.idcategoria=catdir.idcategoria");
$cons = mysql_query("SELECT * FROM categoriadirectorio ORDER BY idcategoria");
$row = mysql_fetch_assoc($query);
$arrdonde = array("_blank","_self","_parent","_top");
$cantcat = mysql_num_rows($cons);
$arrcategorias = array();
for($i=0;$i<$cantcat;$i++){
while($res = mysql_fetch_assoc($cons)){
array_push($arrcategorias, $res['titulo']);
}
}
y cuando hago el echo sería así:
Código PHP:
echo $arrcategorias[$row['idcatondir']-1];
Salu2
PD: Lo postee por si a alguien le sirve luego.
A josemi muy útiles las funciones array_push y array_pop me resolvieron una pila de dudas que tenía al respecto y que me hacían el proceso de crear arreglos un poco más tedioso.