Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
PHP foreach类别和项目_Php_Mysql_Codeigniter_Loops_Foreach - Fatal编程技术网

PHP foreach类别和项目

PHP foreach类别和项目,php,mysql,codeigniter,loops,foreach,Php,Mysql,Codeigniter,Loops,Foreach,我遇到的MySQL查询情况如下: 类别1-项目1 类别1-项目2 类别1-项目3 类别2-项目3 类别2-项目4 类别2-项目5 类别2-项目1 类别3-项目4 类别3-项目10 X类-项目X或项目(1,2,3…现有) 如何在PHP中按类别分组 数据库方案: MySQL查询: $query = "SELECT cat.category_name, ch.channel_name FROM `type_categ` tc , `categories` cat , `channels` ch

我遇到的MySQL查询情况如下:

  • 类别1-项目1
  • 类别1-项目2
  • 类别1-项目3
  • 类别2-项目3
  • 类别2-项目4
  • 类别2-项目5
  • 类别2-项目1
  • 类别3-项目4
  • 类别3-项目10
  • X类-项目X或项目(1,2,3…现有)
如何在PHP中按类别分组

数据库方案:

MySQL查询:

$query = "SELECT cat.category_name, ch.channel_name 
FROM `type_categ` tc , `categories` cat , `channels` ch
WHERE cat.category_id = tc.category_id AND ch.channel_id = tc.channel_id
ORDER BY cat.category_name ASC"
输出:

var_dump($category)
array(x) { 
    [0]=> array(2) { 
            ["category_name"]=> string(8) "Category1" 
                ["channel_name"]=> string(15) "Item1" 
            } 
    [1]=> array(2) { 
            ["category_name"]=> string(8) "Category1" 
                ["channel_name"]=> string(17) "Item2" 
            } 
    [2]=> array(2) { 
            ["category_name"]=> string(8) "Category1" 
                ["channel_name"]=> string(10) "Otem 5" 
            } 
                  ... ...
    [x]=> array(2) { 
            ["category_name"]=> string(8) "Category x" 
                ["channel_name"]=> string(10) "Item x" 
            } 

} 

您可以在数据上迭代,以您想要的格式创建数组。
像这样的东西可能()


使用foreach并将其分配给新数组

  $newOptions = array();
  $i=1;
    foreach ($category as $option) {
      $cname = $option['category_name'];
      $itemname = $option['channel_name'];

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

你试过什么?结果应该是什么样的?有相当多的信息缺失。
  $newOptions = array();
  $i=1;
    foreach ($category as $option) {
      $cname = $option['category_name'];
      $itemname = $option['channel_name'];

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