获取 JSON 编码数据 PHP CodeIgniter

Get JSON Encode Data PHP CodeIgniter

我有 json 数据存储在数据库中,字段名称为“field_form”,如下所示:

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

我需要在 PHP CodeIgniter 控制器中获取“nama_field”数据,当我使用以下代码获取数据时:

$data_form = $this->perizinan_model->get_sub_field_form($id_jenis_izin)->result();

foreach($data_form as $data_field){
   var_dump(json_decode($data_field->field_form));
}
        

var_dump 结果是

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

但是,我只想获取 nama_field 数据,并将其存储在数组中。先谢谢了。

您必须 json_decode JSON 对象并将其转换为关联数组。

foreach($data_form as $data_field){
   $data = json_decode($data_field->field_form, true);

  // the you can access your data as an array
  var_dump($data['nama_field']);
}

来自您的数据结构。它是数组中的对象然后这是代码。

$nama_fields = [];
foreach($data_form as $data_field){
    $jsonData = json_decode($data_field->field_form);

    if (is_array($jsonData)) {
        foreach ($jsonData as $index => $item) {
            if (isset($item->nama_field)) {
                $nama_fields[] = $item->nama_field;
            }
        }
    }
}

// then use $nama_fields variable.
var_dump($nama_fields);