我的一个PDO语句返回一个数组。对于JSON编码,我想将此数组转换为Object并将其附加到另一个数组。
while($row = $sth->fetch()){
foreach($row as $key=>$value){
$r = (object) $row;
$recordArray[] = $r;
}
}
$json->record = $recordArray;
echo json_encode($json);
$recordArray
似乎保持空白但如果我在循环中编写$recordArray[] = "test"
则不会。所以我的对象$r
一定有问题,但我无法发现错误。任何帮助表示赞赏。
答案 0 :(得分:2)
这是一种更简单的方法
echo json_encode(array('record'=>$sth->fetchAll(PDO::FETCH_OBJ)));
答案 1 :(得分:0)
您的foreach
错误:在正文中您使用迭代的对象。
你可能是这个意思吗?
$records = [];
while($row = $sth->fetch()) {
$current = [];
foreach($row as $key => $value) {
$current[$key] = $value;
}
$records[] = $current;
}
答案 2 :(得分:0)
如果我理解,您希望循环$row
并将$row
中的每个对象添加到$recordArray
。
然后你应该这样做:
while($row = $sth->fetch()){
foreach($row as $value){
$recordArray[] = $value;
}
}