我正在尝试生成以下JSON数据:
[
{
"ID": "A1000",
"name": "John Simpson",
"serialID": "S41234",
"tagID": "ABC6456"
},
{
"ID": "B2000",
"name": "Sally Smith",
"serialID": "B5134536",
"tagID": "KJJ451345"
},
{
"ID": "A9854",
"name": "Henry Jones",
"serialID": "KY4239582309",
"tagID": "HYG452435"
}
]
Run Code Online (Sandbox Code Playgroud)
从PHP foreach循环中看起来像这样:
foreach($records as $record) {
$ID = $record->getField('propertyID');
$name = $record->getField('assignedName');
$serialID = $record->getField('serial');
$tagID = $record->getField('tag');
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
$arr = array('ID' => $ID, 'name' => $name, 'serialID' => $serialID, 'tagID' => $tagID);
Run Code Online (Sandbox Code Playgroud)
它适用于循环中的每个记录,但无法计算出将它们连接成一个JSON数据字符串的语法?
问题: -你$arr每次都在foreach()循环中覆盖你的变量.这会导致问题.
解决方案: -而不是覆盖,而是将值分配给数组,如下所示: -
$arr = []; //create empty array
foreach($records as $record) {
$arr[] = array(
'ID' => $record->getField('propertyID');
'name' => $record->getField('assignedName');
'serialID' => $record->getField('serial');
'tagID' => $record->getField('tag')
);//assign each sub-array to the newly created array
}
echo json_encode($arr);
Run Code Online (Sandbox Code Playgroud)