php - 如何为所有匹配结果创建单个 JSON?
问题描述
我正在从数据库中获取数据,并且在获取数据时,我会检查每个结果是否符合特定条件,如果符合,我希望它将包含所有详细信息的行添加为同一 JSON 中的新对象,所以我最终得到一个包含所有匹配行的 JSON
while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
if (matching criteria){
//add row to the JSON
}
}
现在我可以添加每一行并回显它,但它会覆盖前一行:
while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
if (matching criteria){
$firstColumn = $result['firstColumn'];
$secondColumn= $result['secondColumn'];
//more columns if necessary. . .
$myObj->firstColumn = $firstColumn ;
$myObj->secondColumn= $secondColumn;
$myJSON = json_encode($myObj);
echo $myJSON;
}
}
解决方案
尝试这种方式使用 myObj Data 创建一个数组为该数组分配值,并在获取数组集合后转换为 Json 对象
$data = array(array());
$i = 0;
$j = 0;
while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
if (matching criteria){
$firstColumn = $result['firstColumn'];
$secondColumn= $result['secondColumn'];
//more columns if necessary. . .
$myObj->firstColumn = $firstColumn ;
$myObj->secondColumn= $secondColumn;
$data[i][j]=$firstColumn;
$j++;
$data[i][j]=$secondCoulmn;
$i++;
$j--;
}
}
$myJSON = json_encode($data);
echo $myJSON;
推荐阅读
- twig - 用替换在树枝上添加字符
- python - 按钮的 padx 不是有意的?
- node.js - Sequelize 查询子结构
- javascript - 如果日期字段等于今天或自创建之日起 40 天内,则在平面列表中显示 Firestore 文档
- kubernetes - 使用 ansible 获取 k8s pod 列表
- vue.js - 为什么我的 Vue-router 没有路由到我的页面?
- java - Nifi 自定义 Kafka 处理器代码在有限的时间内工作
- python - 如何使用 numpy 数组对函数进行矢量化以消除循环
- tensorflow - 在 tf2.1.0-keras 中使用条件
- soap - 如何自动将 rpc/literal wsdl 转换为 document/literal