如何将array_push用于json_encode

时间:2014-03-15 07:50:50

标签: php json array-push

我是iOS开发人员,我在PHP中使用Webservices来获取JSON响应。

我写的代码是:

    $result = mysqli_query($con,"SELECT * FROM wp_marketcatagories");
    $data =array();
    while($row = mysqli_fetch_array($result))
                 {
                 $data[] = array_push($data, array('id' => $row['id']));
                 }
    $json = json_encode($data);
    echo $json;

这就是我想要的结果:

[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"},{"id":"7"},{"id":"8"},{"id":"9"},{"id":"10"},{"id":"11"},{"id":"12"}]

但是上面的代码就是这样给我的:

[{"id":"1"},1,{"id":"2"},3,{"id":"3"},5,{"id":"4"},7,{"id":"5"},9,{"id":"6"},11,{"id":"7"},13,{"id":"8"},15,{"id":"9"},17,{"id":"10"},19,{"id":"11"},21,{"id":"12"},23]

这个1,3,5,......来自哪里?

3 个答案:

答案 0 :(得分:6)

无需将其分配给$data[]。您已将值推送到数组$data

只需使用

即可
 array_push($data, array('id' => $row['id']));

而不是

 $data[] = array_push($data, array('id' => $row['id']));

答案 1 :(得分:2)

  

Array_Push():返回数组中新的元素数。

...这是您的号码来自,并且您使用$data[] =语句将它们添加到数组中

array_push($data, array('id' => $row['id']));

$data[] = array('id' => $row['id']);

此方案中的结果相同

答案 2 :(得分:1)

您不需要像这样编写两次$ data数据: $ data [] = array_push($ data,array(' id' => $ row [' id']));

array_push - 将一个或多个元素推送到数组的末尾 语法:array_push(array,value1,value2...)

只需写下

array_push($data, array('id' => $row['id']));

$data[] = array('id' => $row['id']);