对于autocomplete-plugin,我需要生成一个类似的JSON结构:
{ “标签”:[{ “标记”: “比萨”},{ “标记”: “罗马”},{ “标记”: “米兰”},{ “标记”: “佛罗伦萨”},{ “tag”:“New York”},{“tag”:“Paris”},{“tag”:“Berlin”},{“tag”:“London”},{“tag”:“Madrid”}] }
我尝试使用以下PHP代码:
$tags = array();
while (($row = $statement -> fetch(PDO::FETCH_ASSOC)) !== false) {
$tags[] = array('tag' => $row['text']);
}
echo json_encode($tags);
但仅生成
[{ “标记”: “比萨”},{ “标记”: “罗马”},{ “标记”: “米兰”},{ “标记”: “佛罗伦萨”},{ “标记”:”纽约“},{”tag“:”Paris“},{”tag“:”Berlin“},{”tag“:”London“},{”tag“:”Madrid“}]
所以包装“标签”丢失了 - 我该如何正确实现?
谢谢!
答案 0 :(得分:3)
$tags = array();
while (($row = $statement -> fetch(PDO::FETCH_ASSOC)) !== false) {
$tags[] = array('tag' => $row['text']);
}
echo json_encode(array('tags'=> $tags));
您必须使用键'tags'设置其他数组中的tags数组。
答案 1 :(得分:2)
return json_encode(array('tags' => $statement->fetchAll()));
(当然,您需要在查询中select text as tag
。并将PDO::FETCH_ASSOC
设置为默认提取选项,以使您的代码有意义且干净)