如何将多维数组传递给CodeIgniter中的视图

时间:2011-08-16 19:48:50

标签: arrays codeigniter

这真的是我的坚果。 我将多维数组传递给这样的视图:

$res = $this->deliciouslib->getRecentPosts();

(正如你可以看到我正在玩的美味API)

$ result是一个数组,print_r($ result)给出如下内容:

我的问题是如何在视图中迭代这个!我一直在尝试这样的事情,

$result = $this->deliciouslib->getRecentPosts();
$i=0;

foreach($result as $value)
{                   
     $val = 'val'.$i;           
     $data[$val]=$value;
     $i++;          
}

$this->load->view('delicious_view',$data);
return true;

然后,在视图中...... ...

foreach ($val0 as $value)
{
   echo $value."<br>";
}

显然这不起作用,因为我需要所有“$ val(i)”! 我得到BrainCramp的男人!我可能围绕着答案跳舞,就像围绕篮筐的篮球一样,但我仍然完全陷入困境。任何想法我如何迭代整个数组,将是最有帮助的....

3 个答案:

答案 0 :(得分:2)

假设$this->deliciouslib->getRecentPosts()返回一个iterable,您可以尝试:

$data['delicious_posts'] = $this->deliciouslib->getRecentPosts();

并正常传递给视图。然后,在视图上,您​​执行以下操作:

foreach($delicious_posts as $delicious_post){
   print_r($delicious_post);
}

答案 1 :(得分:2)

在CodeIgniter中,当您将数组传递给视图时,每个键都设置一个简单变量:

 $data = array('foo' => 'bar');
 $this->load->view('myview', $data)

 // In your view
 echo $foo; // Will output "bar"

因此,如果要传递数组,只需将值设置为数组:

 $data = array('foo' => array('bar1', 'bar2') );
 $this->load->view('myview', $data)

 // In your view
 foreach($foo as $bar) {
   echo $bar . " "; // Will output "bar1 bar2 "
 }

答案 2 :(得分:-1)

回答你的问题可能是从数组中调用数据。可能的解决方案:

  1. 使用索引获取数组。

    $data['**result**']=$this->deliciouslib->getRecentPosts();
    
  2. 由于getRecentPosts()的结果是数据数组,因此将其传递给视图

    $this->load->view('view_name', $data);
    
  3. 如果结果是数组,请在“查看页面”上通过“正确索引”

    进行访问
    $result[0-9]['col_name'] e.g **var_dump($result[9]['Title']**);
    

    否则,如果它是一个对象数组,

    $result[0-9]=>col_name<br> e.g **var_dump($result[9]=>title)**;