请更正我正在使用的术语。
我正在尝试返回这样的json数据:
"data": [
{
"id": 1
"name": "test"
},
{
{
"id": 2
"name": "abc"
},
{
"id": 3
"name": "zxc"
}
]
我的代码就是这个
$data = [];
foreach($prices as $price) {
$data[]["id"] = $price->id;
$data[]["name"] = $price->name;
}
$result["data"] = $data;
代码返回json,如下所示:
"data": [
{
"id": 1
},
{
"name": "test"
}
{
"id": 2
},
{
"name": "abc"
}
{
"id": 3
},
{
"name": "zxc"
}
]
抱歉格式不正确。
答案 0 :(得分:2)
喜欢这个
foreach($prices as $price) {
$data[] = [
"id"=> $price->id,
"name" => $price->name
];
}
当您需要在数组中对它们进行分组,然后将该数组作为一个单元添加时,您将按顺序添加项目。
答案 1 :(得分:2)
$i = 0;
$data = [];
foreach($prices as $price) {
$data[$i]["id"] = $price->id;
$data[$i]["name"] = $price->name;
$i++;
}
$result["data"] = $data;
答案 2 :(得分:1)
问题是你不断追加到数组而不是追加到对象而然后追加到$data
数组。
试试这个
$data = [];
foreach($prices as $price) {
$topush = [];
$topush["id"] = $price->id;
$topush["name"] = $price->name;
$data[] = $toReturn;
}
$result["data"] = $data;
或者更短的
$data = [];
foreach($prices as $price) {
$data[] = ['id' => $price->id, 'name' => $price->name];
}
$result["data"] = $data;
答案 3 :(得分:1)
您要在输出中添加两个新元素,一个包含id
的键/值,另一个包含name
的键/值。你必须将两者都放在一个元素中:
$data[]["id"] = $price->id; // Add one element
$data[]["name"] = $price->name; // Add second element
// New
$data[] = ['id' => $price->id, 'name' => $price->name]; // Add both as one Element
答案 4 :(得分:0)
空[]
每次都会创建新索引。您必须指定要插入的索引:
$data = [];
foreach($prices as $i => $price) {
$data[$i]["id"] = $price->id;
$data[$i]["name"] = $price->name;
}
$result["data"] = $data;
答案 5 :(得分:0)
您继续将值分配给新密钥,您应该一次性分配您想要捆绑的数据。
$data = [];
foreach($prices as $price) {
$data[] = [
"id" => $price->id,
"name" => $price->name;
]
}
$result["data"] = $data;