我想提供一些特定尺寸的储物柜。我的SQL语句是:

$sql = "SELECT Concat(`Height`, 'x', `Width`, 'x', `Depth`) as Locker, count(*) from lockers GROUP BY `Height`, `Width`, `Depth` ";

行循环中的var_转储提供以下信息(可能还有更多行):
array(2) { ["Locker"]=> string(8) "15x30x45" ["count(*)"]=> int(6) }
array(2) { ["Locker"]=> string(8) "45x30x45" ["count(*)"]=> int(4) }

我想获得一个JSON字符串,如下所示:
{
  "SizeList": {
    "15x30x45": 6
    "45x30x45": 4
  }
}

我尝试了很多不同的方法(包括将其转换为对象,但无法获取大小作为索引的值)。例如,我得到不同的变化:
[0]=> string(31) "{"Locker":"15x30x45","count(*)":6}"
[1]=> string(31) "{"Locker":"45x30x45","count(*)":4}"

感谢任何帮助。。。

最佳答案

您可以手动创建如下对象:

$sizeList = new stdClass();
foreach ($results as $row) {
    $sizeList->{$row['Locker']} = $row['count(*)'];
}

echo json_encode(array('SizeList' => $sizeList));

10-06 16:16