Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter将动态数据从控制器传递到视图。并将值映射到控制器数组变量_Php_Codeigniter - Fatal编程技术网

Php Codeigniter将动态数据从控制器传递到视图。并将值映射到控制器数组变量

Php Codeigniter将动态数据从控制器传递到视图。并将值映射到控制器数组变量,php,codeigniter,Php,Codeigniter,我想要从控制器到视图的数组是动态的 假设 控制器 视图(main.php) 现在控制器中的$data数组将是: array (size=6) 'Car' => array (size=1) 0 => object(stdClass)[31] public 'frontend_id' => string '3' (length=1) public 'sub_category_id' => string '3' (length=1

我想要从控制器到视图的数组是动态的

假设

控制器 视图(main.php) 现在控制器中的$data数组将是:

 array (size=6)
'Car' =>  
 array (size=1)
  0 => 
    object(stdClass)[31]
      public 'frontend_id' => string '3' (length=1)
      public 'sub_category_id' => string '3' (length=1)
      public 'category_id' => string '3' (length=1)
      public 'name' => string 'Car' (length=3)
      public 'slug' => string 'car' (length=3)
      public 'parent_id' => string '1' (length=1)
      public 'description' => string '' (length=0)
      public 'status' => string '1' (length=1)
当我在视图中循环通过
$category
时,我可以得到如下汽车价值:

  foreach($category as $val) {
      $name = $val['name'];            //prints car
      foreach($name as $value) {       //how to map $name to the 'car' array that is passed from controller. It say invalid argument supplied for foreach

      }
  }

数组
$a
应该是

$a[0] = array('category_id'=>'3', 'name'=>'car');
$a[1] = array('category_id'=>'5', 'name'=>'bike');

$data['category'] = $a;

试试这个你的控制器应该是:-

 $res= $data = [];
 $a = array(array('category_id'=>'3', 'name'=>'car'),array('category_id'=> '5', 'name'=>'bike'));
 foreach($a as $val){
     $res[$val['name']] = $this->home_model->get_product($val['category_id']);
 }
 $data['category'] = $res;
 $this->load->view('main',$data);
 foreach($data['category'] as $val){
    foreach($val['name'] as $value){     
         // do your stuff
    }
 }
您的视图应为:-

 $res= $data = [];
 $a = array(array('category_id'=>'3', 'name'=>'car'),array('category_id'=> '5', 'name'=>'bike'));
 foreach($a as $val){
     $res[$val['name']] = $this->home_model->get_product($val['category_id']);
 }
 $data['category'] = $res;
 $this->load->view('main',$data);
 foreach($data['category'] as $val){
    foreach($val['name'] as $value){     
         // do your stuff
    }
 }

$val['name']
之前添加
$
。请参阅下面的代码

你的观点

foreach($category as $val)
{
    foreach($$val['name'] as $value){     

    }
}
foreach ($categorys_new as $category) {
    print_r($category);
    echo "<br>";
}

我用你的数据测试了代码。很好。所以这应该行得通

我的测试代码 输出

Array ( [0] => Array ( [name] => car [category_id] => 8 ) [1] => Array ( [name] => bike [category_id] => 10 ) )

在您的情况下-作为解决方案 在控制器中

$a = array(
        array('category_id'=>'3', 'name'=>'car'),
        array('category_id'=> '5', 'name'=>'bike')
    );
$data['category'] = $a;
foreach($a as $val)
{
    $name = $val['name'];
    $category_id = $this->home_model->get_product($val['category_id']);

    $NewVal[] = array(
                    'name' => $name, 
                    'category_id' => $category_id
                );
}

$data['category_new'] = $NewVal;
在视图中

foreach($category as $val)
{
    foreach($$val['name'] as $value){     

    }
}
foreach ($categorys_new as $category) {
    print_r($category);
    echo "<br>";
}
foreach($categorys\u新设为$category){
印刷品(类别);
回声“
”; }
对不起,我忘了写信。但我已经传递了数据。我将编辑问题。请尝试在控制器中打印$a数组。并查看阵列的外观控制器中的阵列显示正常,因为汽车不是array@user254153你能再清理一下吗。我不清楚,
$data[$val['name']=$this->home\u model->get\u product($val['category\u id')这和您需要在视图中作为输出的内容。请解释好的,我将编辑这个问题。@user254153也显示转储的值。它不起作用$无法在视图中访问数据['category'.@user254153检查此outAccepted答案是否简短且有效。谢谢你的帮助。