0

この例のようなコードが必要です。Li ごとに 3 つのカテゴリを制限する必要があります。

<ul>
   <li>
      <div> Categpry 1 </div>
      <div> Category 2 </div>
      <div> Category 3 </div>
   </li>
   <li>
      <div> Categpry 4 </div>
      <div> Category 5 </div>
      <div> Category 6 </div>
   </li>
   <li>
      <div> Categpry y </div>
   </li>
</ul>

ページ 1 -> カテゴリ 1 [アイテム一覧]、カテゴリ 2 [アイテム一覧]、カテゴリ 3 [アイテム一覧]

ページ 2 -> カテゴリ 4 [アイテム一覧]、カテゴリ 5 [アイテム一覧]、カテゴリ 6 [アイテム一覧]

ページ x -> カテゴリ y [アイテム一覧]。

<?php
$category = array(
   array('category_name' => 'Category1', 'channel_name' => 'Item 1'),
   array('category_name' => 'Category3', 'channel_name' => 'Item 2'),
   array('category_name' => 'Category1', 'channel_name' => 'Item 2'),
   array('category_name' => 'Category3', 'channel_name' => 'Item 1'),
   array('category_name' => 'Category2', 'channel_name' => 'Item 2'),
   array('category_name' => 'Category4', 'channel_name' => 'Item 4'),
   array('category_name' => 'Category5', 'channel_name' => 'Item 5'),
   array('category_name' => 'Category1', 'channel_name' => 'Item 6'),
   array('category_name' => 'Category3', 'channel_name' => 'Item 7'),
   array('category_name' => 'Category2', 'channel_name' => 'Item 8'),
   array('category_name' => 'Category4', 'channel_name' => 'Item 8'),
   array('category_name' => 'Category3', 'channel_name' => 'Item 3'),
   array('category_name' => 'Category5', 'channel_name' => 'Item 4'),
   array('category_name' => 'Category6', 'channel_name' => 'Item 2'),
   array('category_name' => 'Category2', 'channel_name' => 'Item 5'),
   array('category_name' => 'Category2', 'channel_name' => 'Item 7')
);
$newOptions = array();
  $i=1;
    foreach ($category as $option) {
      $cname = $option['category_name'];
      $itemname = $option['channel_name'];

      $newOptions[$cname][$i] = $itemname;
 $i++;
    }
?>

PHP array_chunk() が役に立たないか、正しく使用できません。

このコードを上のようにするにはどうすればよいですか。

提案がある場合は、私を助けてください。ありがとう。

4

1 に答える 1

2
$pagesize = 3;

$category_pages = array_chunk($category, $pagesize);

echo "<ul>\n";
foreach ($category_pages as $page) {
    echo "\t<li>\n";
    foreach ($page as $category) {
        echo "\t\t<div> ", htmlspecialchars($category['category_name'], ENT_NOQUOTES, 'UTF-8'), " </div>\n";
    }
    echo "\t</li>\n";
}
echo "</ul>\n";
于 2013-01-29T20:10:04.393 に答える