2013-01-20 4 views
0

Я пытаюсь создать два неупорядоченных списка из массива PHP, я нашел this thread, что в значительной степени то, что я ищу, но я бы хотел, чтобы в первом списке было 11 элементов, второй список - для остальных. Вот мой код:PHP создать два неупорядоченных списка из массива

<?php if ($rows) : 

    $items = count($rows); 
    $split = ceil($items/2); 
    $firsthalf = array_slice($rows,$split); 
    $secondhalf = array_slice($rows,0,$split); 
?> 

    <div class="tickets"> 

     <div class="col1"> 
     <ul> 
      <?php foreach ($firsthalf as $item) : ?> 
      <li><a href="">test 1</a></li> 
      <?php endforeach; ?> 
     </ul> 
     </div> 

     <div class="col2"> 
     <ul> 
      <?php foreach ($secondhalf as $item) : ?> 
      <li><a href="">test 2</a></li> 
      <?php endforeach; ?> 
     </ul> 
     </div> 

     <div class="clear"></div> 
    </div> 

<?php endif; ?> 
+0

и что это вопрос? –

+0

Просто «перетасовывайте» массив, прежде чем делать свой «массив». – sberry

+0

Как сделать первый список из 11 элементов – SoulieBaby

ответ

2

Вот как разделить массив на 11 пунктов, а затем остальные using array_slice():

$firsthalf = array_slice($rows, 0, 11); 
$secondhalf = array_slice($rows, 11); 
+0

Большое спасибо, что сработало :) – SoulieBaby

1

Если взглянуть на документацию array_slice, вы можете увидеть, что вы указываете размер раскола в качестве третьего параметра, а второй является смещение:

<?php 
    if ($rows) : 
     $firsthalf = array_slice($rows, 0, 11); // returns 11 rows from the start 
     $secondhalf = array_slice($rows, 11); // returns everything after the 11th row 
?> 
+0

Большое спасибо (тот же ответ, что и ниже) - но спасибо за документацию, чтобы пойти с :) – SoulieBaby

1
// $items = count($rows); 
// $split = ceil($items/2); 
$firsthalf = array_slice($rows, 0, 11); 
$secondhalf = array_slice($rows, 11); 
Смежные вопросы