Для начала – убери дурацкое форматирование из своей функции.
Формируй в ней массив данных (готовых ссылок, в твоём случае), примерно так:
PHP:
function putAlbum()
{
global $db;
$return = array();
$album = $db->query( "SELECT * FROM " . PREFIX . "_iphoto_album WHERE status = 1 ORDER BY date DESC LIMIT 10" );
if ($db->num_rows($album) > 0) {
while ( $row = $db->get_row($album) ) {
$row['date'] = strtotime( $row['date'] );
$ids = $row['id'];
$nume = $row['name'];
$alt_nume = $row['alt_name'];
$fulllink = "/iphoto/$alt_nume";
$return[$row['id']]['album'] = "<a href=\"{$fulllink}\">{$nume}</a><br>";
$subalbum = $db->query( "SELECT * FROM " . PREFIX . "_iphoto_subalbum WHERE album_id = '$ids' AND status = 1 " );
if ($db->num_rows($subalbum) > 0) {
while ( $rows = $db->get_row($subalbum) ) {
$rows['date'] = strtotime( $rows['date'] );
$numes = $rows['name'];
$alt_numes = $rows['alt_name'];
$fulllinks = "/iphoto/$alt_numes";
$return[$row['id']]['subalbums'][] = "<a href=\"{$fulllinks}\">{$numes}</a><br>";
}
}
}
}
return $return;
}
На выходе получаешь такой массив:
Код:
array (size=4)
185 =>
array (size=1)
'album' => string '<a href="/iphoto/album54">ALBUM54</a><br>' (length=41)
184 =>
array (size=2)
'album' => string '<a href="/iphoto/test">test</a><br>' (length=35)
'subalbums' =>
array (size=1)
0 => string '<a href="/iphoto/subalbum-test">subalbum-test</a><br>' (length=53)
183 =>
array (size=2)
'album' => string '<a href="/iphoto/albom1">Альбом1</a><br>' (length=46)
'subalbums' =>
array (size=1)
0 => string '<a href="/iphoto/fsfsfsd">fsfsfsd</a><br>' (length=41)
182 =>
array (size=2)
'album' => string '<a href="/iphoto/albom">Альбом</a><br>' (length=44)
'subalbums' =>
array (size=2)
0 => string '<a href="/iphoto/testare">testare</a><br>' (length=41)
1 => string '<a href="/iphoto/tess">tess</a><br>' (length=35)
Дальше этот массив можешь обрабатывать, как угодно – отступами, вложенными списками и прочей ерундой.