Получить JSON Кодирование данных PHP CodeIgniter

#php #json #codeigniter

Вопрос:

У меня есть данные json, хранящиеся в базе данных с именем поля «field_form», как это:

 [  {  "panjang": "200",  "tipe_data": "text",  "nama_field": "nama lengkap"  },  {  "panjang": "201",  "tipe_data": "number",  "nama_field": "tahun lahir"  } ]  

Мне нужно получить данные «nama_field» в контроллере PHP CodeIgniter, когда я получу данные с кодом:

 $data_form = $this-gt;perizinan_model-gt;get_sub_field_form($id_jenis_izin)-gt;result();  foreach($data_form as $data_field){  var_dump(json_decode($data_field-gt;field_form)); }    

результатом var_dump является

 array(2) { [0]=gt; object(stdClass)#21 (3) { ["panjang"]=gt; string(3) "200" ["tipe_data"]=gt; string(4) "text" ["nama_field"]=gt; string(12) "nama lengkap" } [1]=gt; object(stdClass)#23 (3) { ["panjang"]=gt; string(3) "201" ["tipe_data"]=gt; string(6) "number" ["nama_field"]=gt; string(11) "tahun lahir" } }  

Но я просто хочу получить данные nama_field и сохранить их в массиве. Спасибо, прежде чем.

Ответ №1:

Из вашей структуры данных. Это объект внутри массива, тогда это код.

 $nama_fields = []; foreach($data_form as $data_field){  $jsonData = json_decode($data_field-gt;field_form);   if (is_array($jsonData)) {  foreach ($jsonData as $index =gt; $item) {  if (isset($item-gt;nama_field)) {  $nama_fields[] = $item-gt;nama_field;  }  }  } }  // then use $nama_fields variable. var_dump($nama_fields);  

Ответ №2:

Вам нужно json_decode создать объект JSON и преобразовать его в ассоциативный массив.

 foreach($data_form as $data_field){  $data = json_decode($data_field-gt;field_form, true);   // the you can access your data as an array  var_dump($data['nama_field']); }  

Комментарии:

1. спасибо, но его возврат не определен nama_field. Когда я пытаюсь сбросить $данные, он возвращает: массив(2) { [0]=gt; массив(3) { [«панджанг»]=gt;gt; строка(3) «200» [«tipe_data»]=gt;gt;gt; строка(4) «текст» [«nama_field»]=gt;gt;gt;gt; строка(12) «нама ленгкап» } [1]=gt;gt;gt;gt;gt; массив(3) { [«панджанг»]=gt;gt;gt;gt;gt;gt; строка(3) «201» [«tipe_data»]=gt;gt;gt;gt;gt;gt;gt; строка(6) «число» [«поле nama_field»]=gt;gt;gt;gt;gt;gt;gt;gt; строка(11) «тахун лахир» } }