Php PDO输出到JSON格式
我这里有一点简单的PHP:Php PDO输出到JSON格式,php,json,pdo,Php,Json,Pdo,我这里有一点简单的PHP: $root="../../"; include $root . 'config/config.php'; require $root . 'vendor/autoload.php'; $list = "SELECT words FROM random_words ORDER BY RAND() LIMIT 3"; $list1 = $pdo->query($list)->fetchAll(PDO::FETCH_COLUMN); $list2 = $pd
$root="../../";
include $root . 'config/config.php';
require $root . 'vendor/autoload.php';
$list = "SELECT words FROM random_words ORDER BY RAND() LIMIT 3";
$list1 = $pdo->query($list)->fetchAll(PDO::FETCH_COLUMN);
$list2 = $pdo->query($list)->fetchAll(PDO::FETCH_COLUMN);
我想循环查看$list1
的结果,并输出随机词,与list2
中相应的随机词结合,以这种类型的JSON输出结束
[{
"id": 0,
"random_combination": "scans.graduate"
}, {
"id": 1,
"random_combination": "apricot.dudley"
}, {
"id": 2,
"random_combination": "flushed.subscript"
}]
然而,我很难想出我将如何做到这一点
我能拼凑出这样的东西:
$words = array();
for ($x = 0; $x <= 2; $x++) {
$un1 = $list1[$x];
$un2 = $list2[$x];
$un3 = $un1 . "." . $un2;
$words['output']['id'][] = $x;
$words['output']['random_combination'][] = $un3;
$output = json_encode($words);
}
print_r($words);
然而,这与我想要实现的输出并不完全相同,但我无法计算出获得我想要的东西的逻辑。为了使您的代码更通用,请使用
foreach
,而不是for
:
foreach ($list1 as $k => $v) {
$words['output'][] = [
'id' => $k,
'random_combination' => $v . '.' . $list2[$k],
];
}
echo json_encode($words);
尝试
$words['output']['id']=$x$单词['output']['random_composition']=$un3代码>取而代之。然后将json_encode命令移到循环外,在末尾为什么执行两次LIMIT 6
不会做同样的事情?这是为了得到两组随机字。。。如果是一张单子,我必须把单子切成两半,例如,从单子的下半部分得到第一个单词,并将其与第一个单词连接起来,然后增加1,将上半部分的第二个单词与下半部分的第二个单词连接起来……谢谢!我不得不删除$list2[$k]
末尾的逗号。然后它完美地工作了。再次感谢
foreach ($list1 as $k => $v) {
$words['output'][] = [
'id' => $k,
'random_combination' => $v . '.' . $list2[$k],
];
}
echo json_encode($words);