У меня есть 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-объектом. Что я делаю неправильно?
да пропускаю. как мне это исправить
По нет пропуск. Индексы должны идти без пробелов. Затем ваши данные будут выведены в виде массива.
как я могу удалить индекс из массива, а затем переназначить его, чтобы он оставался массивом
array_values?
см. ответ выше. Я хочу удалить 7-й индекс, который, как вы видите, удален. заголовок беременность и значение 8 остальное такое же
Функция array_response переиндексирует ваш массив.
array_values сделал свою работу






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