Php在循环中获取数组
如何将每个索引的值保存在Arry中?我可以用Sql语句或循环来完成吗? 我的mssql声明: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
$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)作为值