View Codeigniter 中的 foreach 错误:非法字符串偏移
error foreach in View Codeigniter : Illegal string offset
请帮忙,我使用 foreach 从数据库中 return 数据,但它只有 return 最后的数据(数组总是用最后的数据更新)。所以我修改了代码,但出现错误:foreach 中的非法字符串偏移量。
这是我的控制器
foreach($dataDesa as $desa)
{
$namaDesa = json_decode($this->curl->simple_get($desa->alamat_api.'/info_desa?ID_DESA=1'));
$datakonten[$namaDesa] = array(
'proyek' =>json_decode($this->curl->simple_get($desa->alamat_api.'/proyek_pertanian')),
'nama_desa' =>json_decode($this->curl->simple_get($desa->alamat_api.'/info_desa?ID_DESA=1')),
'lelang' =>json_decode($this->curl->simple_get($desa->alamat_api.'/pelelangan'))
);
}
$datakonten['getAllDesa'] = $this->M_desa->getAllDesa($idStatus);
$nama_Desa = array();
foreach($datakonten['getAllDesa'] as $row)
{
$nama_Desa[] = $row->nama_desa;
}
$datakonten['nama_desa']=$nama_Desa;
$data['content'] = $this->load->view('public/konten/v_home',$datakonten,TRUE);
$this->load->view('public/halaman/v_home',$data);
这是我的观点
$i=0;
foreach($nama_desa[$i]['proyek'] as $rows)
{
$nama = $rows->nama_proyek;
i++;
}
我测试了 $nama_desa[0] 和 $nama_desa[1],它们的值是 returned(值是 "Kranon" 和 "Wulung") 并且我使用 $Kranon['proyek'] 这样的值并且没有错误并且 returned 我想要的值,但是当我将它与 $nama_desa[$ i]['proyek'] 我收到了这个错误。
`
请帮忙,提前致谢
您只需将 $row->nama_desa 推送到 $nama_desa。并尝试从 $nama_desa?
获取 ['proyek']
正如您上面所解释的,您通过此 $nama_desa[1] 获得了价值,但您试图访问此密钥 $nama_desa[$i]['proyek'] 这意味着它正在寻找不存在的 $nama_desa[1]['proyek']。
随心所欲
print_r($name_desa);die;
您会发现在 $name_desa[1] 上不存在名称为 'proyek' 的密钥(密钥“1”我只给出了示例。它可以是任意数量键)
我猜你会通过访问这个 $nama_desa['proyek'] 获得你的价值,或者你会从打印结果中获得灵感。
我刚刚找到了我的解决方案。
每当我想将引用另一个值的变量传递给 foreach 时,我总是会出错,所以我修改了我的控制器,以便我可以直接将值传递给 View 中的 foreach。我将某种 "get-data-from-API" 从 Controller 移到了 View 中。
我的控制器:
$datakonten['getAllDesa'] = $this->M_desa->getAllDesa($idStatus);
$data['content'] = $this->load>view('public/konten/v_home',$datakonten,TRUE);
我的看法:
foreach($getAllDesa as $rows)
{
$proyek = json_decode($this->curl->simple_get($rows->alamat_api_lelang));
foreach($proyek as $baris)
{
$namaProyek = $baris->nama_proyek;
?>
Nama Proyek : <?php echo $namaProyek;?></br>
<?php
}
}
请帮忙,我使用 foreach 从数据库中 return 数据,但它只有 return 最后的数据(数组总是用最后的数据更新)。所以我修改了代码,但出现错误:foreach 中的非法字符串偏移量。
这是我的控制器
foreach($dataDesa as $desa)
{
$namaDesa = json_decode($this->curl->simple_get($desa->alamat_api.'/info_desa?ID_DESA=1'));
$datakonten[$namaDesa] = array(
'proyek' =>json_decode($this->curl->simple_get($desa->alamat_api.'/proyek_pertanian')),
'nama_desa' =>json_decode($this->curl->simple_get($desa->alamat_api.'/info_desa?ID_DESA=1')),
'lelang' =>json_decode($this->curl->simple_get($desa->alamat_api.'/pelelangan'))
);
}
$datakonten['getAllDesa'] = $this->M_desa->getAllDesa($idStatus);
$nama_Desa = array();
foreach($datakonten['getAllDesa'] as $row)
{
$nama_Desa[] = $row->nama_desa;
}
$datakonten['nama_desa']=$nama_Desa;
$data['content'] = $this->load->view('public/konten/v_home',$datakonten,TRUE);
$this->load->view('public/halaman/v_home',$data);
这是我的观点
$i=0;
foreach($nama_desa[$i]['proyek'] as $rows)
{
$nama = $rows->nama_proyek;
i++;
}
我测试了 $nama_desa[0] 和 $nama_desa[1],它们的值是 returned(值是 "Kranon" 和 "Wulung") 并且我使用 $Kranon['proyek'] 这样的值并且没有错误并且 returned 我想要的值,但是当我将它与 $nama_desa[$ i]['proyek'] 我收到了这个错误。 ` 请帮忙,提前致谢
您只需将 $row->nama_desa 推送到 $nama_desa。并尝试从 $nama_desa?
获取 ['proyek']正如您上面所解释的,您通过此 $nama_desa[1] 获得了价值,但您试图访问此密钥 $nama_desa[$i]['proyek'] 这意味着它正在寻找不存在的 $nama_desa[1]['proyek']。
随心所欲
print_r($name_desa);die;
您会发现在 $name_desa[1] 上不存在名称为 'proyek' 的密钥(密钥“1”我只给出了示例。它可以是任意数量键)
我猜你会通过访问这个 $nama_desa['proyek'] 获得你的价值,或者你会从打印结果中获得灵感。
我刚刚找到了我的解决方案。 每当我想将引用另一个值的变量传递给 foreach 时,我总是会出错,所以我修改了我的控制器,以便我可以直接将值传递给 View 中的 foreach。我将某种 "get-data-from-API" 从 Controller 移到了 View 中。
我的控制器:
$datakonten['getAllDesa'] = $this->M_desa->getAllDesa($idStatus);
$data['content'] = $this->load>view('public/konten/v_home',$datakonten,TRUE);
我的看法:
foreach($getAllDesa as $rows)
{
$proyek = json_decode($this->curl->simple_get($rows->alamat_api_lelang));
foreach($proyek as $baris)
{
$namaProyek = $baris->nama_proyek;
?>
Nama Proyek : <?php echo $namaProyek;?></br>
<?php
}
}