Вопрос по массиву

romanich

Новичок
Вопрос по массиву

Есть sql-запрос, который выводит следующее
Код:
id_fo     name                  id_fo        name                                       link_town                  COUNT(town.id_fo)     COUNT(id)
1          Северо-Западный ФО    1           Архангельская область                       arkhangelsk_area           21                         85 
1          Северо-Западный ФО    1           Вологодская область                         vologda_area               1                          85 
1          Северо-Западный ФО    1           Санкт-Петербург                             spb                        61                         85 
2          Центральный ФО        2           Москва                                      moscow                     1                          85 
4          Южный ФО              4           Астраханская область                        astrakhan_area             1                          85
Распечатываем запрос:
PHP:
<?php
$list_town_num = mysql_num_rows($list_town);
//$id_fo = -1;
for ($i = 0; $i < $list_town_num; $i++)
	{	
		$list_town_array = mysql_fetch_array($list_town);
		if ($id_fo != $list_town_array[0])
			{
					
				// Выводим Федеральные округа
				echo "\n<div class='block_center2'>\n";
				echo $i."<b>".$list_town_array[1]."</b><br>\n";
				$id_fo = $list_town_array[0];
			}
				// Выводим субъекты РФ
				echo $i."<a href='http://".$HTTP_HOST."/catalog/".$list_town_array[4]."/'>".$list_town_array[3]."</a>&nbsp;(".$list_town_array[5].")&nbsp;*&nbsp; ";
	}
?>
и получаем
0Северо-Западный ФО
0Архангельская область (21) * 1Вологодская область (1) * 2Санкт-Петербург (61) *
3Центральный ФО
3Москва (1) *
4Южный ФО
4Астраханская область (1) *

Вопрос. Как определить последний элемент в группе, название условное. В данном случае, этими элементами будут являться: 2Санкт-Петербург (61) * , 3Москва (1) * , 4Астраханская область (1) * для того чтобы удалить в конце строки лишние пробелы, знак "*", возможно, вставить какие-нибудь html-теги.

Первое, что пришло на ум это сделать проверку на условие, если следующий (next) $list_town_array[0] != $id_fo, то $list_town_array[3] и есть последний элемент в группе. Но в этом случае нужно будет next'ом слишком много перебирать. А в дальнейшем если запрос изменится, добавятся поля и все тогда.

Как решить данную задачу. Заранее, спасибо.
 

romanich

Новичок
Так разницы то особой не будет. Нам все равно придется возвращаться назад и делать перезапись. Вот если бы было можно сделать что-то типа next($list_town_array[0]);
 

zerkms

TDD infected
Команда форума
зачем возвращаться?
if ($prev_town_id != текущий) {
что-то делаем;
$prev_town_id = текущий;
}
 

Beavis

Banned
Автор оригинала: romanich
Так разницы то особой не будет. Нам все равно придется возвращаться назад и делать перезапись. Вот если бы было можно сделать что-то типа next($list_town_array[0]);
mixed next ( array &$array )
Returns the array value in the next place that's pointed to by the internal array pointer, or FALSE if there are no more elements.
 
Сверху