#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) «тахун лахир» } }