对于自动完成插件,我需要生成一个json结构,如下所示:
{"标签":[{"标签":"比萨"},{"标签":"罗马"},{"标签":"米兰"},{"标签":"佛罗伦萨"},{"标签":"纽约"},{"标签":"巴黎"},{"标签":"柏林"},{"标签":"伦敦"},{"标签":"马德里"}]}
我尝试了以下php代码:
$tags = array();
while (($row = $statement -> fetch(PDO::FETCH_ASSOC)) !== false) {
$tags[] = array('tag' => $row['text']);
}
echo json_encode($tags);
但只生成
[{"标签":"比萨"},{"标签":"罗马"},{"标签":"米兰"},{"标签":"佛罗伦萨"},{"标签":"纽约"},{"标签":"巴黎"},{"标签":"柏林"},{"标签":"伦敦"},{"标签":"马德里"}]
所以包装"标签"是缺失的-我如何实现正确?
谢谢!
$tags = array();
while (($row = $statement -> fetch(PDO::FETCH_ASSOC)) !== false) {
$tags[] = array('tag' => $row['text']);
}
echo json_encode(array('tags'=> $tags));
你必须设置你的标签数组在其他数组的关键'tags' .
return json_encode(array('tags' => $statement->fetchAll()));
(当然您需要在查询中使用select text as tag
。并将PDO::FETCH_ASSOC
设置为默认获取选项,以使您的代码有意义和DRY)