PHP CodeIgniter从数据库JSON数据中提取nama_field存入数组的方法
解决方案
你只需要初始化一个空数组存储结果,解码JSON后遍历提取nama_field字段存入即可,以下是可直接使用的代码:
方法1:使用默认对象格式操作
// 初始化空数组存储所有nama_field值 $nama_field_list = []; $data_form = $this->perizinan_model->get_sub_field_form($id_jenis_izin)->result(); foreach($data_form as $data_field){ $field_form = json_decode($data_field->field_form); // 遍历解码后的字段配置数组 foreach ($field_form as $item) { $nama_field_list[] = $item->nama_field; } } // 调试时可输出验证结果 // var_dump($nama_field_list);
最终得到的$nama_field_list就是你需要的结果,内容为:["nama lengkap", "tahun lahir"]
方法2:转为关联数组操作(可选)
如果你习惯用数组格式操作数据,给json_decode传第二个参数true即可:
// 初始化空数组存储所有nama_field值 $nama_field_list = []; $data_form = $this->perizinan_model->get_sub_field_form($id_jenis_izin)->result(); foreach($data_form as $data_field){ // 第二个参数为true时返回关联数组 $field_form = json_decode($data_field->field_form, true); foreach ($field_form as $item) { $nama_field_list[] = $item['nama_field']; } }
可选优化:如果业务中存在
field_form为空、JSON格式异常的场景,可以在解码后增加数组判断,避免报错:$field_form = json_decode($data_field->field_form); if (is_array($field_form)) { foreach ($field_form as $item) { $nama_field_list[] = $item->nama_field; } }
内容的提问来源于stack exchange,提问作者ASHafizullah
相关产品推荐
相关产品推荐

