Не понимаю как сделать for loop

stsepelin

Постоялец
Регистрация
8 Сен 2011
Сообщения
55
Реакции
13
Привет всем!

Написал я код, но он получился очень громоздким, хочу укоротить его при помощи for или foreach, но к сожалению чуть-чуть не догоняю как это сделать..
Вот сам код:
Код:
<?php if ($link1 && $link1_title) { ?>
        <li><a href="<?php echo $link1; ?>" alt="<?php echo $link1_title; ?>"><?php echo $link1_title; ?></a></li>
        <?php } elseif ($link1_title) { ?>
        <li><?php echo $link1_title; ?></li>
        <?php } ?>
        <?php if ($link2 && $link2_title) { ?>
        <li><a href="<?php echo $link2; ?>" alt="<?php echo $link2_title; ?>"><?php echo $link2_title; ?></a></li>
        <?php } elseif ($link2_title) { ?>
        <li><?php echo $link2_title; ?></li>
        <?php } ?>
        <?php if ($link3 && $link3_title) { ?>
        <li><a href="<?php echo $link3; ?>" alt="<?php echo $link3_title; ?>"><?php echo $link3_title; ?></a></li>
        <?php } elseif ($link3_title) { ?>
        <li><?php echo $link3_title; ?></li>
        <?php } ?>
...

        <?php if ($link10 && $link10_title) { ?>
        <li><a href="<?php echo $link10; ?>" alt="<?php echo $link10_title; ?>"><?php echo $link10_title; ?></a></li>
        <?php } elseif ($link10_title) { ?>
        <li><?php echo $link10_title; ?></li>
        <?php } ?>
 
PHP:
<?php
for($i = 1; $i <= 100500; $i++){
  $name1 = 'link'.$i.'_title';
  $name2 = 'link'.$i;
  if($$name1){ ?>
  <li><?=($$name2 ? '<a href="'.$$name2.'" alt="'.$$name1.'">' : '')?><?=$$name1?><?=($$name2 ? '</a>' : '')?></li>
<?php
  }
}
?>
 
Если нужно реализовать без массива, что не очень правильно, то так:
PHP:
<?php
$i = 1;
$link = 'link'.$i;
$title = $link.'_title';

while(isset($$link) && isset($$title))
    {
        ?>
        <li><a href="<?php echo $$link; ?>" alt="<?php echo $$title; ?>"><?php echo $$title; ?></a></li>
        <?php
        $i++;
        $link = 'link'.$i;
        $title = $link.'_title';
    }
?>
Но все же желательно предварительно собрать в массив свои линки и тайтлы, тогда будет так:
PHP:
<?php
/*
$links[0]['url'] = 'link1';
$links[0]['title'] = 'link1_title';
...
*/

foreach($links as $l)
    {
        ?>
        <li><a href="<?php echo $l['url']; ?>" alt="<?php echo $l['title']; ?>"><?php echo $l['title']; ?></a></li>
        <?php
    }
?>
 
Назад
Сверху