Как добавить элемент HTML для каждых трех результатов в foreach с использованием PHP?

1

Я хотел бы добавить элемент ul li html для каждых 3 результатов в foreach, используя php. Я попробовал следующий метод. но я не получаю точных результатов. пожалуйста, сообщите об этом

 Array ( [0] => stdClass Object ( [category_name] => Architect ) 
 [1] => stdClass Object ( [category_name] => Doors & Windows ) 
 [2] => stdClass Object ( [category_name] => Garage Doors ) 
 [3] => stdClass Object ( [category_name] => Home Inspection ) )



      <?php 
                    $i=0;
                     //$arrays = array_chunk($get_business_cat_details, 3);
                    foreach($get_business_cat_details as $key=> $cat_name){                                                         

                                //echo " <ul style='margin-top: 20px;'><li><a href='#'>".ucwords($cat_name->category_name) ."</a></li>";
                                if($i%3==0){

                                    echo "<ul><li><a href='#'>".ucwords($cat_name->category_name) ."</a></li></ul>";

                                }else{
                                    echo "<ul><li><a href='#'>".ucwords($cat_name->category_name) ."</a></li></ul>";
                                }
                                $i++;

                        }


                    ?>

Вывод:

 Power -- Wash --  Cleaning Paint 

East Valley --  Central/South Phx --  West Valley 
  • 0
    Разместите свой массив вместе с ожидаемым результатом. Вы можете использовать for($i = 0; $i < count($your_array); $i += 3;){ //your code}
Теги:

2 ответа

1
Лучший ответ

Пожалуйста, попробуйте ввести код ниже.

    <?php

$i = 0;
//$arrays = array_chunk($get_business_cat_details, 3);
foreach ($get_business_cat_details as $key => $cat_name) {

    //echo " <ul style='margin-top: 20px;'><li><a href='#'>".ucwords($cat_name->category_name) ."</a></li>";
    if($i==0) {
        $get_style="style='margin-top: 20px;'";
    } else {
        $get_style="";
    }

    if ($i % 3 == 0) {
        echo "<ul ".$get_style." >";
    }

    echo "<li><a href='#'>" . ucwords($cat_name->category_name) . "</a></li>";

    $i++;
    if ($i % 3 == 0 && $i != 0) {
        echo "</ul>";
    }
}
?>
  • 0
    не получить точные результаты
  • 0
    @markatteteam Не могли бы вы прислать мне, какой результат вы получаете?
Показать ещё 9 комментариев
0

Я думаю, это может быть то, что вы ищете. Поскольку ваш исходный тег находится в вашем цикле, каждый результат будет по существу полным списком. Удалив из цикла, вы можете закрыть тег и динамически открыть его в цикле.

    <? php
    $i = 0;
  echo "<ul>";
   foreach($get_business_cat_details as $key => $cat_name) {
     if ($i % 3 == 0) {
       echo "</ul><ul>";
     }
     echo "<li><a href='#'>".ucwords($cat_name - > category_name).
       "</a></li>";
     $i++;

   }
echo "</ul>";
    ?>
  • 0
    фрагмент кода ничего не показывает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню