Первое, последнее и каждое 8 значение массива. Как найти?

Статус
В этой теме нельзя размещать новые ответы.

RigVan

Постоянный член клуба
Первое, последнее и каждое 8 значение массива. Как найти?

В прошлый раз тема была закрыта из-за возникшей ругани... прошу прощения, что поднимаю её ещё раз. Проблема ещё не решена:

Есть массив значений (кол-во может изменяться), какой должен быть алгоритм, что бы:
а) найти первое значение,
2) если оно не единственное, то найти ещё и последнее
3) и если их больше 8 (например), то ещё и каждое 8 значение.
4) При чем если последнее из "кратных 8" совпадает с самым последним значением ВСЕГО массива, то учитывается только одно из них, то которое "кратное 8".

Как мне пояснили в прошлый раз, надо действовать перебором массива.
Что-то похожее на это:
PHP:
for ($i=0; $i<= (count($arr)); $i=$i+$b)
     {
       $a =$i;
       if ($i == 0) {$b = 7;} else {$b = 8;}
       echo '$a ='.$a.' значение = '.$arr[$i].'<br />';
     }
if (($a < count($arr)) and ($i <> count($arr)))
     {
       $a = (count($arr)-1);
       echo '<br />$a ='.$a.' последний элемент = '.$arr[$i].'<br />';
     }
Но как-то криво получается, есть ли более красивые и простые решения?
 

RigVan

Постоянный член клуба
Страшный Злодей
Спасибо! То, что нужно. Задача решена.
 

dimagolov

Новичок
1. показывай первое
2. циклом перебирай каждое 8, запоминай последний выбранный.
// $i<= (count($arr)) - неправильно, индекс должен быть $i<count($arr)
3. после цикла если последний выбранный не 0 и не count($arr) - 1 показываем count($arr) - 1
 

Фанат

oncle terrible
Команда форума
RigVan
если тема закрыта, то открывать её заново запрещается.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху