Я разработчик iOS и создаю веб-службы на PHP для получения ответа 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, ....?

5
Usama Sadiq 15 Мар 2014 в 11:50

3 ответа

Лучший ответ

Нет необходимости назначать его $data[]. Вы уже помещаете значения в массив $data

Просто используйте

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

Вместо того

 $data[] = array_push($data, array('id' => $row['id']));
12
anurupr 15 Мар 2014 в 11:52

Вам не нужно назначать $ 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']);
1
Nikunj Kabariya 15 Мар 2014 в 12:43

Array_Push (): возвращает новое количество элементов в массиве.

... отсюда берутся ваши числа, и вы добавляете их в массив с помощью оператора $data[] =

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

Или

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

Тот же результат в этом сценарии

2
Scuzzy 15 Мар 2014 в 12:05