从 MySQL 结果创建 PHP 数组
Posted
技术标签:
【中文标题】从 MySQL 结果创建 PHP 数组【英文标题】:Create PHP Array From MySQL Result 【发布时间】:2021-12-14 02:20:05 【问题描述】:mysql db 查询的输出如下(示例):
type count amount
---- ----- ------
A 1 100
B 2 200
C 3 300
等等...保存在一个名为$data
的php变量中
从这个结果中,我想循环遍历结果并创建一个 php 数组,它将像这样输出 json:
"types": [
"type": "A",
"count": 1,
"amount": 100
"type": "B",
"count": 2,
"amount": 200
"type": "C",
"count": 3,
"amount": 300
]
到目前为止我所做的......我可以像这样循环它们:
foreach($data as $k=>$v)
echo $v->type;
echo $v->count;
echo $v->amount;
如何用这个创建一个 php 数组?我知道如何转换为 JSON,但我需要帮助来编写将创建该格式数组的循环。
【问题讨论】:
【参考方案1】:从您发布的代码中,您已经有了一个对象数组。从中您可以简单地创建父对象并将数据分配给它:
// json_encode will create JSON objects for PHP arrays with string keys.
$parent = ['types'=>$data];
echo json_encode($parent, JSON_PRETTY_PRINT);
【讨论】:
感谢您提供非常简单的解决方案!【参考方案2】:在不知道如何将数据放入$data
变量的情况下,您可以这样构造一个新数组:
$array = ['types' => []];
foreach ($data as $k => $v)
$array['types'][] = [
'type' => $v->type,
'count' => $v->count,
'amount' => $v->amount
];
echo json_encode($array, JSON_PRETTY_PRINT);
【讨论】:
这一切似乎都有点涉及,因为 OP 以数组开头。他可以在一行中将它分配给父数组中的一个元素,然后 json_encode() 它。 是的,这不是解决问题的最有效方法,但 OP 寻求帮助,了解如何编写有助于他构建数组的循环。 @JacobMulquin 我将查询结果转换为 $data 的方式是 get_var($query)以上是关于从 MySQL 结果创建 PHP 数组的主要内容,如果未能解决你的问题,请参考以下文章