PHP foreach: разделение цикла на две части - PullRequest
3 голосов
/ 16 марта 2011

Я хочу разделить петлю на две части, но не могу понять!

Я хочу сначала зациклить три элемента из массива, а затем отобразить оставшиеся элементы, например,

01 Home
02 Portfolio
03 Blog

{my website logo}

04 About
05 Contact
06 Feed

Это код, в котором я застрял,

<?php
    $index = 0;

    foreach($items as $item) 
    {

    ?>
    <li>0<?php echo $index+1;?><a href="#"><?php echo $item['name'];?></a></li>
    <?php   
    $index ++;
    }

?>

Есть идеи?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 16 марта 2011

Может быть array_slice - это то, что вы ищете?

foreach (array_slice($items, 0, 3) as $item) {
    // print item
}

// display logo

foreach (array_slice($items, 2, 3) as $item) {
    // print item
}
1 голос
/ 16 марта 2011
foreach ($items as $index => $item){
    echo /*<li>*/;
    if ($index == 2){
        echo /*logo*/;
    }
}

Вам нужно что-то подобное?

0 голосов
/ 16 марта 2011

Может быть, вы можете просто создать 2 для циклов

<?php
for ($i=0; $i<3; $i++) {
?>
  <li>0<?php echo $i+1;?><a href="#"><?php echo $items[$i]['name'];?></a></li>
<?php 
}
?>

// display logo

<?php
for ($i=3; $i<count($items); $i++) {
?>
  <li>0<?php echo $i+1;?><a href="#"><?php echo $items[$i]['name'];?></a></li>
<?php 
}
?>
0 голосов
/ 16 марта 2011

Попробуйте удалить цикл все вместе и использовать array_slice с implode ()

$first_three = array_slice($items, 0, 3); 

print implode("\n", $first_three);
print "LOGO";
print implode("\n", $items);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...