массив и вывод его содержимого

Don Arana

Новичок
массив и вывод его содержимого

Уважаемые подскажите начинающему плиз.


1. У меня есть массив

$nav_sections = array("значение1", "значение2", "значение3", "значение4", "значение5", "значение6");

2. Я его вывожу в другом файле

<?php

for($i=0; $i<count($nav_sections); $i++)
echo "
<LI>
<A href=navigator.php?section=$i>{$nav_sections[$i]}</A>
<BR>
";
?>

Но дело в том, что мне нужно, чтобы в строчке navigator.php?section=... шли значения не 0,1,2,3,4, а - 1,2,3,4...

пока писал вопрос, нашел решение, наверное правильное -

вот так сделал -

<?php

for($i=0; $i<count($nav_sections); $i++)
echo "<LI><A href=navigator.php?section=". ($i+1) .">{$nav_sections[$i]}</A><BR>";
?>

конечно просто, но начинающему не всегда очевидно.
но вот что поставило меня в тупик - так это то, что при запросе navigator.php?section=0 выводится тот же результат, что и при navigator.php?section=1, учитывая то, что в таблице нет секции с таким id=0 (то есть разделы в таблице имеют свой id=1,2,3...)

как бы мне избавиться от случая с таким запросом..? аполучается как то не очень красиво.
 

IBSN

Новичок
for($i=0; $i<count($nav_sections); $i++)
замени на:
for($i=1; $i<count($nav_sections); $i++)
 

tony2001

TeaM PHPClub
IBSN:
на конкурсе вердных советов ты был бы членом жюри.

Don:
1) вынеси count() в другое место.
например так:
for($i = 0, $counted = count($nav_sections); $i<$counted; $i++)
2) у тебя проблемы в navigator.php.
 

Don Arana

Новичок
tony2001

1) спасибо, попробую с count поэкспериментировать, но честно говоря, не удержался и без советов сам сделал как сказал IBSN
for $i=1
не будешь так добр объяснить чем это чревато?
просто вроде на вид самое простое решение :(

2) navigator.php - все поправил и работает ок.


Update:
tony2001

!!
при твоем способе

for($i=0, $counted=count($nav_sections); $i<$counted; $i++)

echo "<LI><A href=navigator.php?section=$i>{$nav_sections[$i]}</A><BR>";




при выводе списка разделов (содержащегося в массиве)
выводится и нулевая строчка (как бы пустая)
так что пока не вижу другого выхода кроме как $i=1
 

Don Arana

Новичок
tony2001
сорри, я ошибся. твой метод ок! посто я забыл в массиве убрать 1=>'значение1', то есть вернул его обратно на

$nav_sections = array("значение1", "значение2", "значение3", "значение4", "значение5", "значение6");

и все стало ок.
только вот это нормально, что при наведении на ссылку с первым элементом массива выдается
navigator.php?section=0 ??

RomikChef
все норм. стало, я поправил, сенкс. но вот нолик меня смущает :)
 

RomikChef

Guest
А что в этом плохого?
Но если тебе это так страшно, то выводи тоже +1
а в навигаторе делай $section--;
 

Don Arana

Новичок
вот, вроде все заработало так как я хотю:

$nav_sections = array("значение1", ..., ... );

for($i=0, $counted=count($nav_sections); $i<$counted; $i++)
echo "<LI><A href=navigator.php?section=". ($i+1) .">{$nav_sections[$i]}</A><BR>";

вроде все ок, спасибо за помощь, дело было в цикле.
 

RomikChef

Guest
echo "<LI><A href=navigator.php?section=".$i+1.">".$nav_sections[$i]."</A><BR>";
 

Don Arana

Новичок
RomikChef

спасибо ! :)

Update!

ха!
при твоем синтаксисе ругается на эту строчку!

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in z:\home\localhost\www\pilig_new\navigator.php on line 60

а при моем - работает :(
 
Сверху