【问题标题】:How to pass a multi dimensional array to a view in CodeIgniter如何将多维数组传递给 CodeIgniter 中的视图
【发布时间】:2011-08-16 19:48:50
【问题描述】:

这真的让我很生气。 我将一个多维数组传递给这样的视图:

$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)”!。
伙计,我得了脑抽筋!!我可能正在围绕答案跳舞,就像篮球绕着篮筐一样,但我仍然完全被难住了。任何我如何遍历整个数组的想法都会很有帮助....

【问题讨论】:

    标签: arrays codeigniter


    【解决方案1】:

    假设$this-&gt;deliciouslib-&gt;getRecentPosts()返回一个iterable,你可以试试:

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

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

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

    【讨论】:

    • 谢谢大家,这两个答案都帮了我的忙,但 Jorge 是对的。
    • @eamoc 如果这个答案是帮助您解决问题的答案,请考虑accepting它。
    【解决方案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 "
     }
    

    【讨论】:

      【解决方案3】:

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

      1. 获取带有索引的数组中的数据。

        $data['**result**']=$this->deliciouslib->getRecentPosts();
        
      2. 现在getRecentPosts()的结果是一个数据数组,把它传递给视图

        $this->load->view('view_name', $data);
        
      3. 如果结果是一个数组,在查看页面上,通过 RIGHT INDEXING 访问它

        $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)**; 
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多