我想在一个项目数组中检索并插入一组图像。 我的项目数组有这个配置:
Array (
[projectos] => Array (
[0] => stdClass Object (
[id_projecto] => 1
[titulo] => Titulo do projecto
[descricao] => Descrição
[data] => 0000-00-00
[id_categoria] => 3
)
[1] => stdClass Object (
[id_projecto] => 5
[titulo] => Teste
[descricao] => Teste
[data] => 2014-07-02
[id_categoria] => 2
)
[2] => stdClass Object (
[id_projecto] => 7
[titulo] => Teste Projecto
[descricao] => Yo
[data] => 2014-07-02
[id_categoria] => 3
)
)
)
这就是我如何使循环检索图像并在每个项目中插入一个数组。
for ($i=0; $i < count($data['projectos']); $i++)
{
$data['projectos'][$i]['imagens'][] = $this->imagem_model->get_many_by('id_projecto', $data['projectos'][$i]->id_projecto);
}
这样的结果是一个空白页面,在Codeigniter中经常意味着PHP语法中的错误,我无法看到它!
get_many_by()
功能正常运行,这不是问题。我正在使用最新版本的Codeigniter Framework。
注意:如果我使用这个循环,结果很好,但它不是我想要的数据格式:
foreach ($data['projectos'] as $row)
{
$data['projectos']['imagens'][] = $this->imagem_model->get_many_by('id_projecto',$row->id_projecto);
}
答案 0 :(得分:1)
您尝试访问类似数组的对象。 $data['projectos'][$i]['imagens']
应该更像$data['projectos'][$i]->imagens
...并且您需要声明该类具有该公共变量,在您尝试追加它之前将其初始化为空数组。
$data['projectos'][$i]->imagens = array();
// ...
$data['projectos'][$i]->imagens[] = 'a value';
但为什么呢?我怀疑get_many_by
函数已经返回一个数组。所以你需要做的就是改变你的for
循环以包含这个声明,这样就可以将数组分配给这个Object变量:
$data['projectos'][$i]->imagens = $this->imagem_model->get_many_by('id_projecto', $data['projectos'][$i]->id_projecto);