Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算foreach循环并在php中创建新元素_Php_Wordpress_Woocommerce_Foreach - Fatal编程技术网

计算foreach循环并在php中创建新元素

计算foreach循环并在php中创建新元素,php,wordpress,woocommerce,foreach,Php,Wordpress,Woocommerce,Foreach,我正在为WooCommerce产品类别制作一份超大菜单。我能够使用下面的代码获得所有子类别的列表 $parent_id = 37; //ID of the Parent Category $subCat_of_parent = get_terms('product_cat',array('child_of' => $parent_id)); 然后在html结构中使用,如下所示 <div class="row"> <div class="col-md-6">

我正在为WooCommerce产品类别制作一份超大菜单。我能够使用下面的代码获得所有子类别的列表

$parent_id = 37; //ID of the Parent Category
$subCat_of_parent = get_terms('product_cat',array('child_of' => $parent_id));
然后在html结构中使用,如下所示

<div class="row">
    <div class="col-md-6">
        <ul>
        <?php
        foreach ($subCat_of_parent as $subcat) {
            ?>
            <li>
                <a href="<?php echo get_category_link($subcat->term_id); ?>"><?php echo $subcat->name; ?></a>
            </li>
            <?php
        }
         ?>
        </ul>
    </div>
</div>

这是通过以这种格式获取父类别的所有子类别列表来实现的

<div class="row">
    <div class="col-md-6">
        <ul>
           <li><a>1st subcategory</a></li>
           <li><a>2nd subcategory</a></li>
           <li><a>3rd subcategory</a></li>
           <li><a>4th subcategory</a></li>
           <li><a>5th subcategory</a></li>
           <li><a>6th subcategory</a></li>
        </ul>
    <div>
</div>

  • 第一子类别
  • 第二子类
  • 第三子类别
  • 第四子类
  • 第五子类
  • 第六子类别
我想要实现的是在第三个子类别之后,它应该在一个新的列上断开并继续,这样我就可以得到这样的东西

<div class="row">
    <div class="col-md-6">
        <ul>
           <li><a>1st subcategory</a></li>
           <li><a>2nd subcategory</a></li>
           <li><a>3rd subcategory</a></li>
        </ul>
    <div>

    <div class="col-md-6">
        <ul>
           <li><a>4th subcategory</a></li>
           <li><a>5th subcategory</a></li>
           <li><a>6th subcategory</a></li>
        </ul>
    <div>
</div>

  • 第一子类别
  • 第二子类
  • 第三子类别
  • 第四子类
  • 第五子类
  • 第六子类别

我怎样才能做到这一点?提前感谢您的帮助

您需要每三个类别发出一次内部
      零件

      以下是伪代码:

      • 发出
      • 设置计数器,类似于
        $i=0
      • 启动for循环,
        foreach($subCat\u作为$subCat的父对象){
      • 现在说
        if($i==0)
        ,发出start
        div
        标记和start
        ul
        标记
      • 发出列表项
      • $i=($i+1)%3
      • 现在说
        if($i==0)
        ,发出close
        ul
        标记和close
        div
        标记
      如果子类别的数量不是三的倍数,则需要在末尾添加额外的逻辑,以确保最后一个组正确关闭。

      您可以使用将数组分成三个组

      <div class="row">
      
      <?php
      
          $chunks = array_chunk($subCat_of_parent, 3);
      
          foreach ($chunks as $group) {
              print '<div class="col-md-6">';
              print '<ul>';
      
              foreach ($group as $subcat) {
                  print '<li>';
                      //to-do
                  print '</li>';
              }
      
              print '</ul>';
              print '</div>';
          }
      
      ?>
      
      </div>
      
      
      
      
      
      下面的代码正在运行,您可以使用它

      <?php
      $subCat_of_parent = array('1st sub', '2nd sub', '3rd sub', '4th sub', '5 sub', '6 sub', '7 sub');
      $subCat_of_parent = array_chunk($subCat_of_parent, 3);
      ?>
      <div class="row">
          <?php
          foreach ($subCat_of_parent as $subcats) {
          ?>
              <div class="col-md-6">
                  <ul>
                  <?php
                  foreach ($subcats as $subcat) {
                      ?>
                      <li><a href="#"><?php echo $subcat; ?></a></li>
                      <?php
                  }
                  ?>
                  </ul>
              </div>        
          <?php
          }
          ?>
      </div>
      
      
      

      感谢@Ray的故障,我能够在您的故障后使其正常工作在
    • 行上测试后代码出现错误(错误:可恢复致命错误:类WP_Term的对象无法转换为字符串)…我编辑了您的答案,使其正常工作