我做了一個函數從數據庫表中檢索一些信息並將其存儲在數組中,然後我需要使用json特定的格式對其進行編碼。 這是函數:PHP Array json格式
public function json() {
$query = "SELECT ax.nome as auxiliar, t.assiduidade, t.normas,
t.eficiencia, t.relacionamento, t.iniciativa,
t.visao, (
SELECT truncate(avg(t.assiduidade + t.normas + t.eficiencia + t.relacionamento + t.iniciativa + t.visao)/6, 2)
FROM topico t
WHERE a.id = t.idAval
) AS media
FROM avaliacao a
INNER JOIN supervisor s ON a.supervisor_id = s.id
INNER JOIN auxiliar ax ON a.auxiliar_id = ax.id
INNER JOIN departamento d ON a.departamento_id = d.id
inner join topico t on a.id = t.idAval
WHERE a.departamento_id = ?
and date(a.data) between ? and last_day(?)";
$stmt = $this->conn->prepare($query);
$info["aval"] = array();
$stmt->bindParam(1, $this->departamento);
$stmt->bindParam(2, $this->data);
$stmt->bindParam(3, $this->data);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
extract($row);
$info2 = ['name' => $auxiliar, 'y' => $media, 'drilldown' => $auxiliar, 'data' => [['assiduidade', floatval($assiduidade)], ['normas', floatval($normas)], ['eficiencia', floatval($eficiencia)], ['relacionamento', floatval($relacionamento)], ['iniciativa', floatval($iniciativa)], ['visao', floatval($visao)]]];
array_push($info, $info2);
}
//var_dump($info);
$fp = fopen('data.json', "w");
fwrite($fp, json_encode($info, JSON_PRETTY_PRINT));
fclose($fp);
}
這是data.json的輸出:
{
"aval": [
],
"0": {
"name": "Isratshawatt Sousa",
"y": "7.83",
"drilldown": "Isratshawatt Sousa",
"data": [
[
"assiduidade",
8
],
[
"normas",
7
],
[
"eficiencia",
8
],
[
"relacionamento",
9
],
[
"iniciativa",
6
],
[
"visao",
9
]
]
},
"1": {
"name": "Jo\u00e3o Batista J\u00fanior",
"y": "7.85",
"drilldown": "Jo\u00e3o Batista J\u00fanior",
"data": [
[
"assiduidade",
9.8
],
[
"normas",
7.5
],
[
"eficiencia",
8.8
],
[
"relacionamento",
6.6
],
[
"iniciativa",
5.5
],
[
"visao",
8.9
]
]
} }
這是我需要的格式:
{
"aval": [
{
"name": "Isratshawatt Sousa",
"y": "7.83",
"drilldown": "Isratshawatt Sousa",
"data": [
[
"assiduidade",
8
],
[
"normas",
7
],
[
"eficiencia",
8
],
[
"relacionamento",
9
],
[
"iniciativa",
6
],
[
"visao",
9
]
]
},
{
"name": "Jo\u00e3o Batista J\u00fanior",
"y": "7.85",
"drilldown": "Jo\u00e3o Batista J\u00fanior",
"data": [
[
"assiduidade",
9.8
],
[
"normas",
7.5
],
[
"eficiencia",
8.8
],
[
"relacionamento",
6.6
],
[
"iniciativa",
5.5
],
[
"visao",
8.9
]
}
]
}
我的問題是我怎麼能格式化$ info數組來重現上面的json格式?
如果你有過使用'extract' **的衝動,直到MADNESS通過**這會做同樣的事情'$ info2 [] = $ row;'如果你有名稱的列使用作爲'你想要他們在你的JSON的方式 – RiggsFolly
我想我理解你,關鍵是我需要這種JSON格式才能生成圖表。 – kelsen