我有一个mySQL结果数组,例如。如果数组是“$ getSessionList”
Array(
[0] =>array(
[name] => azure
)
[1] =>array(
[name] => maroon
)
)
我的目标是将此数组转换为此格式的JSON数组:
{"data": [["azure"],["maroon"]]}
我已使用此PHP代码获取结果:
$tableData = new stdClass();
$tableData->data = array();
if (count($getSessionList) > 0) {
for ($i = 0; $i < count($getSessionList); $i ++) {
$getSessionListRecord = $getSessionList[$i];
$data = new stdClass();
$data->name = $getSessionListRecord['name'];
array_push($tableData->data, $data);
}
}
echo json_encode($tableData);
?>
上述代码产生以下结果:
{"data": [["name":"azure"],["name":"maroon"]]}
我想要这个JSON格式数组:
{"data": [["azure"],["maroon"]]}
但我现在的代码给了我这个JSON数组:
{"data": [["name":"azure"],["name":"maroon"]]}
我不希望JSON数组中的键“name”。
如何实现这一目标,我们将非常感谢您的任何帮助。
答案 0 :(得分:2)
尝试这样的事情:
$tableData = new stdClass();
$tableData->data = array();
if (count($getSessionList) > 0) {
for ($i = 0; $i < count($getSessionList); $i ++) {
$getSessionListRecord = $getSessionList[$i];
$data = array($getSessionListRecord['name']);
array_push($tableData->data, $data);
}
}
echo json_encode($tableData);
?>
目前,您正在使用此代码
创建新的PHP对象 $data = new stdClass();
然后您使用以下行将数据添加到密钥名称:
$data->name = $getSessionListRecord['name'];
只需将数据放入一个空数组,并将其推送到另一个数组,转换为JSON时就不会有 name 键。
答案 1 :(得分:1)
试试这个:
$tableData = array();
$tableData['data'] = array_map(function($session) {
// it's a separate session item inside the session_list
return array($session['name']);
}, $getSessionList);
// any associative array converts to js-object
// it doesn't matter is that an associative array or std-object
echo json_encode($tableData);