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

Тема в разделе "Как сделать...", создана пользователем stsepelin, 28 дек 2014.

  1. stsepelin

    stsepelin Постоялец

    Регистр.:
    8 сен 2011
    Сообщения:
    56
    Симпатии:
    12
    Привет всем!

    Написал я код, но он получился очень громоздким, хочу укоротить его при помощи 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 } ?>
    
     
  2. murlo

    murlo Создатель

    Регистр.:
    8 июн 2006
    Сообщения:
    34
    Симпатии:
    33
    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
      
    }
    }
    ?>
     
  3. zaxap83

    zaxap83 Постоялец

    Регистр.:
    6 дек 2010
    Сообщения:
    87
    Симпатии:
    28
    Если нужно реализовать без массива, что не очень правильно, то так:
    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
        
    }
    ?>