Php 将数组值拆分为3个

Php 将数组值拆分为3个,php,loops,Php,Loops,我已将导航菜单存储到数据库中,并希望将其分为3列col-md-3,就像每3列将被包装到col-md-3中一样,让我向您展示它是静态生成的 <div class="col-sm-3"> <ul> <li><a href="">Careers</a></li> <li><a href="">Services</a></li>

我已将导航菜单存储到数据库中,并希望将其分为3列col-md-3,就像每3列将被包装到col-md-3中一样,让我向您展示它是静态生成的

<div class="col-sm-3">
    <ul>
        <li><a href="">Careers</a></li>
        <li><a href="">Services</a></li>
        <li><a href="">Make a Booking</a></li>
    </ul>
</div>
<div class="col-sm-3">
    <ul>
        <li><a href="">Find a Store</a></li>
        <li><a href="">Blog</a></li>
        <li><a href="">Contact us</a></li>
    </ul>
</div>
<div class="col-sm-3">
    <ul>
        <li><a href="">Terms and Conditions</a></li>
        <li><a href="">Privacy Policy</a></li>
        <li><a href="">Delivery and Returns</a></li>
    </ul>
</div>

所有这些导航菜单都在数据库中如何使它们动态我尝试使用for循环,但没有使用它

<?php 
    $nav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '');
    $total = count($nav);
    $i = 1;

    for ($i; $i <= $total; $i++) {
        $ans = $i / 3;      
?>

<?php if(round($ans) == 3) {
?>

<div class="col-sm-3">
    <ul>
        <?php for($j = 1; $j <= $ans; $j++) { ?>
        <li><a href=""><?php echo $nav[$j]; ?></a></li>
        <?php } ?>
    </ul>
</div>

<?php } ?>

<?php if($i == 1) { ?>

<div class="col-sm-3">
    <ul>
        <?php for($k = 0; $k <= $ans; $k++) { ?>
        <li><a href=""><?php echo $nav[$k]; ?></a></li>
        <?php } ?>
    </ul>
</div>

<?php } ?>

<?php  } ?>

我尝试过使用自定义数组值进行简单测试,但没有成功指定我应该做些什么

<?php 
$nav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '');
$total = count($nav);
$i     = 0;
foreach($nav as $sub) {
if($i % 3 == 0) {
  if($i != 0) { ?> </ul></div><?php }
?>
<div class="col-sm-3">
    <ul>
<?php } ?>
        <li><a href=""><?php echo $sub; ?></a></li>

<?php $i++; 
} 
?>

输出:

  • a
  • b
  • c

  • d
  • e
  • f

  • g
  • h
试试这个:

<?php 
$nav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '');
$total = count($nav);
$i     = 0;
foreach($nav as $sub) {
if($i % 3 == 0) {
  if($i != 0) { ?> </ul></div><?php }
?>
<div class="col-sm-3">
    <ul>
<?php } ?>
        <li><a href=""><?php echo $sub; ?></a></li>

<?php $i++; 
} 
?>

输出:

  • a
  • b
  • c

  • d
  • e
  • f

  • g
  • h

您好,您也可以使用这个

<?php
$nav=array("Careers","Services","Make a Booking","Find a Store","Blog","Contact us","Terms and Conditions","Privacy Policy","Delivery and Returns");
$data= array_chunk($nav,3);
for($i=0;$i<3;$i++){
echo '<div class="col-sm-3"><ul>';  
    foreach($data[$i] as $menu){?>  
         <li><a href=""><?php echo $menu; ?></a></li>       
<?php } 
echo '</ul></div>';
} ?>


  • 您好,您也可以使用此功能

    <?php
    $nav=array("Careers","Services","Make a Booking","Find a Store","Blog","Contact us","Terms and Conditions","Privacy Policy","Delivery and Returns");
    $data= array_chunk($nav,3);
    for($i=0;$i<3;$i++){
    echo '<div class="col-sm-3"><ul>';  
        foreach($data[$i] as $menu){?>  
             <li><a href=""><?php echo $menu; ?></a></li>       
    <?php } 
    echo '</ul></div>';
    } ?>
    
    
    

  • 使用
    ur NAV不以1开头,数组以0开头,只需设置
    $j=0$j<$ans
    类似的数组chukn将被放置在col-sm-3和ul标签的环路外?使用
    ur NAV不以1开头,数组以0开头刚刚设置
    $j=0$j<$ans
    像数组chukn将被放置在col-sm-3和ul标签的外环中?为你竖起大拇指很好,但你能解释一下为什么是并且你也可以在botton关闭。但是你需要在下面设置一些逻辑编码。否则在底部也可以。好的,我理解第一个逻辑,但$i!=0让我有点困惑$i!=0是因为如果它的第一个循环-t当我们不需要关闭div标记和ul标记时..对吗?好的,1得到了它,如果它是3对的话,循环div和ul标记将被关闭,如果余数是0,开始吗?很好,但是你可以解释为什么是并且你也可以在botton关闭..但是你需要设置一些逻辑编码下面..否则在底部也可以..好的,我理解第一个逻辑,但是$i!=0让我有点困惑$i!=0是因为如果它的第一个循环-t当我们不需要关闭div标记和ul标记时..对吗?好的,1得到它,循环div和ul标记只有在它是3对时才会关闭,如果余数是0,那么开始?