如何为每个索引保存Arry的值?我可以使用Sql语句或循环吗? 我的mssql声明:
$statement = "SELECT DISTINCT cat_id,value FROM mydb where cat_id > '3000' and cat_id < '6000' order by cat_id";
显示我的结果:
foreach($Sitesresults as $row)
{
printf("<tr><td>%s</td> <td>%s</td>/tr>",$row['cat_id'],$row['value']);
}
我得到下表:
### cat_id ### value
3000, 100
3000, 200
3000, 300
3000, 400
4000, 100
4000, 300
5000, 100
5000, 200
5000, 300
5000, 400
5000, 500
5000, 600
我希望将每个cat_id的值保存为Array并显示如下:
### cat_id ### value
3000, 100,200,300,400
4000, 100,300
5000, 100,200,300,400,500,600
答案 0 :(得分:4)
您可以在MySQL中使用GROUP_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
答案 1 :(得分:0)
如果您要执行的操作是将值添加到数组中[而不是显示它],那么您需要调整循环:
$container = array();
foreach ($Sitesresults as $row)
{
$key = strval($row['cat_id']);
if (!isset($container[$key]))
{
$container[$key] = array();
}
$container[$key][] = $row['value'];
}
希望这有帮助。