Php在循环中获取数组

Php在循环中获取数组,php,mysql,arrays,Php,Mysql,Arrays,如何将每个索引的值保存在Arry中?我可以用Sql语句或循环来完成吗? 我的mssql声明: $statement = "SELECT DISTINCT cat_id,value FROM mydb where cat_id > '3000' and cat_id < '6000' order by cat_id"; 我想将每个cat_id的值保存为数组,并显示如下: ### cat_id ### value 3000, 100,200,300,400 4000, 100,3

如何将每个索引的值保存在Arry中?我可以用Sql语句或循环来完成吗? 我的mssql声明:

 $statement = "SELECT DISTINCT cat_id,value FROM mydb where cat_id > '3000' and cat_id < '6000' order by  cat_id";
我想将每个cat_id的值保存为数组,并显示如下:

### cat_id ### value
3000, 100,200,300,400

4000, 100,300

5000, 100,200,300,400,500,600

您可以在MySQL中使用
GROUP\u CONCAT

SELECT cat_id, group_concat(distinct value) as values
FROM mydb 
where cat_id > '3000' and cat_id < '6000'
group by cat_id
order by cat_id
选择cat\u id、group\u concat(不同值)作为值
来自mydb
其中cat_id>3000'和cat_id<6000'
按类别id分组
按类别id订购

您可以在MySQL中使用
GROUP\u CONCAT

SELECT cat_id, group_concat(distinct value) as values
FROM mydb 
where cat_id > '3000' and cat_id < '6000'
group by cat_id
order by cat_id
选择cat\u id、group\u concat(不同值)作为值
来自mydb
其中cat_id>3000'和cat_id<6000'
按类别id分组
按类别id订购

如果您尝试将值添加到数组[而不是显示它],则需要调整循环:

$container = array();
foreach ($Sitesresults as $row)
{
    $key = strval($row['cat_id']);
    if (!isset($container[$key]))
    {
        $container[$key] = array();
    }
    $container[$key][] = $row['value'];
}

希望这有帮助。

如果您想做的是将值添加到数组[而不是显示它],那么您需要调整循环:

$container = array();
foreach ($Sitesresults as $row)
{
    $key = strval($row['cat_id']);
    if (!isset($container[$key]))
    {
        $container[$key] = array();
    }
    $container[$key][] = $row['value'];
}

希望这能有所帮助。

这就是为什么我在语句中使用DISTINCT,然后使用
group\u concat(DISTINCT value)作为值
这就是为什么我在语句中使用DISTINCT,然后使用
group\u concat(DISTINCT value)作为值