2012-02-28 152 views
0

比方说,我有一个包含这些元素的数组:PHP目录结构

$test = array(Item1, Item2, Item3, Item4, Item5, Item6, Item7, Item8, Item9); 

如何使用或foreach我打印此结构?

<ul> 
    <li> 
     <ul> 
      <li>Item 1</li> 
      <li>Item 2</li> 
      <li>Item 3</li> 
      <li>Item 4</li> 
     </ul> 
    </li> 
    <li> 
     <ul> 
      <li>Item 5</li> 
      <li>Item 6</li> 
      <li>Item 7</li> 
      <li>Item 8</li> 
     </ul> 
    </li> 
    <li> 
     <ul> 
      <li>Item 9</li> 
     </ul> 
    </li> 
</ul> 
+0

你知道'for'-和'而' - 环路和'回声'? – phimuemue 2012-02-28 09:02:10

+0

是的,我也使用它 – zuzuleinen 2012-02-28 09:27:40

回答

4

您可以在阵列分割成块,用array_chunk()

$chunks = array_chunk($test, 4); 

这会给你一个包含各4项子数组的数组。然后,您可以遍历这些创建列表项:

<ul> 
    <?php foreach ($chunks as $chunk): ?> 
     <li> 
      <ul> 
       <?php foreach ($chunk as $item): ?> 
        <li><?php echo htmlspecialchars($item) ?></li> 
       <?php endforeach ?> 
      </ul> 
     </li> 
    <?php endforeach ?> 
</ul> 
1

使用array_chunk分裂你的价值观

$test = array('Item1','Item2','Item3','Item4','Item5','Item6','Item7','Item8','Item9'); 

$chunk = array_chunk($test, 4); 

echo '<ul>'; 
foreach($chunk as $pieces) { 
    echo '<li>'; 
    echo '<ul>'; 
    foreach($pieces as $item) { 
     echo '<li>'.$item.'</li>'; 
    } 
    echo '</ul>'; 
    echo '</li>'; 
} 
echo '</ul>'; 
0

试试这个

<?php 
    $test = array(Item1, Item2, Item3, Item4, Item5, Item6, Item7, Item8, Item9); 
    $ChunkedTestarray = array_chunk($test, 4); 
    echo "<ul>"; 
    foreach($ChunkedTestarray as $Data) { 
     echo "<li><ul>"; 
     for ($i = 0; $i <= count($Data)-1;) { 
      echo "<li>".$Data[$i]."</li>"; 
      $i++; 
     } 
     echo "</ul></li>"; 
    } 
    echo "</ul>"; 
?>