Codeigniter: получение ответа в виде объекта json

У меня есть REST_Controller, в котором следующий код отправляет ответ json

if ($data)
{
        // Set the response and exit
        $this->response($data, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
}
else
{
     // Set the response and exit
     $this->response([
     'status' => FALSE,
        'message' => 'response message',
     ], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
}

Однако отлично работает для определенного индекса, я получаю его в объекте json, но я хочу, чтобы он был в массиве

В моем контроллере у меня есть

$data['form']=$this->Admin_model->getAnsForm($data['question']['id'], $params);

В моей модели у меня есть

public function getAnsForm($qId, $params)
{

    if ($params['pathway']==4)
    {
        $data=array();
        $data[0]=$this->db->select('*')->from('ans_form')->where('question',$qId)->get()->result_array();

        if (count($data[0])>0)
        {
            if ($params['gender']=='male' || $params['gender']=='Male')
            {
                $d['form'][0]=array();
                for($i=0;$i<count($data[0]);$i++)
                {
                    if ($data[0][$i]['caption']=='pregnancy')
                    {
                        // echo '<b>Male</b>';exit;
                    }
                    else
                    {
                        $d['form'][0][$i]=$data[0][$i];                            
                    }
                }
                $data[0]=$d['form'][0];
                return $data[0]; 
            }
            else
            {
                return $data[0];
            }

        }
        else
        {
            return array();
        }

    }
    else
    {
        return $this->db->select('*')->from('ans_form')->where('question',$qId)->get()->result_array();
    }

}

ответ, который я получаю для $data['form'], обычно такой;

"form": [
    {
        "id": "131",
        "question": "50",
        "type": "radio",
        "name": "score",
        "value": "0",
        "caption": "10 or less",
        "placeholder": null
    },
    {
        "id": "132",
        "question": "50",
        "type": "radio",
        "name": "score",
        "value": "1",
        "caption": "11-20",
        "placeholder": null
    },
    {
        "id": "133",
        "question": "50",
        "type": "radio",
        "name": "score",
        "value": "2",
        "caption": "21-30",
        "placeholder": null
    },
    {
        "id": "134",
        "question": "50",
        "type": "radio",
        "name": "score",
        "value": "3",
        "caption": "31 or more",
        "placeholder": null
    }
],

Это массив, но когда у меня есть пол = мужской и заголовок = беременность, я получаю

"form": {
    "0": {
        "id": "145",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "1",
        "caption": "Mental health problems",
        "placeholder": null
    },
    "1": {
        "id": "146",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "2",
        "caption": "Misuse substances",
        "placeholder": null
    },
    "2": {
        "id": "147",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "3",
        "caption": "Smoking-related illness (for example lung cancer)",
        "placeholder": null
    },
    "3": {
        "id": "148",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "4",
        "caption": "Asthma",
        "placeholder": null
    },
    "4": {
        "id": "149",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "5",
        "caption": "Cardiovascular disease",
        "placeholder": null
    },
    "5": {
        "id": "150",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "6",
        "caption": "Chronic obstructive pulmonary disease",
        "placeholder": null
    },
    "6": {
        "id": "151",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "7",
        "caption": "diabetes mellitus",
        "placeholder": null
    },
    "8": {
        "id": "209",
        "question": "54",
        "type": "checkbox",
        "name": "score[]",
        "value": "0",
        "caption": "None of above",
        "placeholder": null
    }
},

который является json-объектом. Что я делаю неправильно?

У вас 1,2,3,4,5,6,8. Поскольку 7 пропускается - ваш массив становится объектом.

u_mulder 22.01.2019 14:15

да пропускаю. как мне это исправить

Malik Mudassar 22.01.2019 14:16

По нет пропуск. Индексы должны идти без пробелов. Затем ваши данные будут выведены в виде массива.

u_mulder 22.01.2019 14:20

как я могу удалить индекс из массива, а затем переназначить его, чтобы он оставался массивом

Malik Mudassar 22.01.2019 14:22
array_values?
u_mulder 22.01.2019 14:23

см. ответ выше. Я хочу удалить 7-й индекс, который, как вы видите, удален. заголовок беременность и значение 8 остальное такое же

Malik Mudassar 22.01.2019 14:25

Функция array_response переиндексирует ваш массив.

u_mulder 22.01.2019 14:26

array_values ​​сделал свою работу

Malik Mudassar 22.01.2019 14:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
48
0

Другие вопросы по теме