在PHP中编码json数组时遇到问题

时间:2017-01-12 05:35:27

标签: php json

我有两个不同的查询,我必须以JSON的形式追加到同一个数组中。

这是我第一次查询的代码......

while($row = mysqli_fetch_array($res)) {
    array_push($result,array('name'=>$row[0],'photo'=>$row[1],'rollno'=>$row[2],'id'=>$row[3]));
}

这是我的第二个查询推送类似于第一个..行数总是与上面的查询相同

array_push($result,array('status'=>'$status');

之后我就像这样对它们进行编码

echo json_encode(array("result"=>$result));

这是我得到的

{"result":[{"name":"Abhishek Singh","photo":"http:\/\/onsitesupport.info\/diary\/photos\/student\/26.png","rollno":"1","id":"26"},
          {"status":"status"}]

但我想这样结果

 {"result":[{"name":"Abhishek Singh","photo":"http:\/\/onsitesupport.info\/diary\/photos\/student\/26.png","rollno":"1","id":"26","status":"status"}]

我的意思是状态将合并到我的每个节点......我怎么能实现这个......?

2 个答案:

答案 0 :(得分:2)

尝试以下方法为每个数组添加状态字段:

while($row = mysqli_fetch_array($res)){
      array_push($result,array('name'=>$row[0],'photo'=>$row[1],'rollno'=>$row[2],'id'=>$row[3]));
}

$res_row = 0;
while($row2 = mysqli_fetch_array($res2)){
   $status = $row2[0]; // status value here
   $result[$res_row]['status']=$status;
   $res_row++;
}

echo json_encode(array("result"=>$result));

答案 1 :(得分:1)

请尝试使用在所有查询完成后合并的临时数组:

// Query 1
while($row = mysqli_fetch_array($res)){
$tmpResults[] = $row;
}

// Query 2
$tmpResult2 = array('status'=>'$status');

// Merge Everything
$final = array_merge($tmpResults, $tmpResult2);

// Encode
$json = json_encode($final, TRUE);
祝你好运