【问题标题】:how to extract this array through foreach loop如何通过foreach循环提取这个数组
【发布时间】:2017-01-27 22:24:24
【问题描述】:

我有一个多维数组。我想通过 foreach 循环提取这个数组,并希望显示在一个无序列表中。如何解决这个问题。请帮我。我正在尝试 2 天,但无法得到任何解决方案。我认为我在循环中很弱。

Array
(
[id] => 1
[name] => Funny
[category_details] => Array
    (
        [get_everything] => Array
            (
                [0] => Array
                    (
                        [ci_cat_id] => 1
                        [img_name] => fapore kapor nosto
                    )

            )
    )

)

Array
(
[id] => 4
[name] => Events
[category_details] => Array
    (
        [get_everything] => Array
            (
                [0] => Array
                    (
                        [ci_cat_id] => 4
                        [img_name] => elo khushir eid
                    )

                [1] => Array
                    (
                        [ci_cat_id] => 4
                        [img_name] => Eid e bari jacchi
                    )

            )

    )

) 

我想要这样的输出

category name1:
    1. test1
    2. test2
    3. test3
category name2:
    1. test4
    2. test5
    3. test6

【问题讨论】:

  • 而你这样做是为了什么?把你的代码。不管是对是错。把代码工作放在这里?你的预期结果是什么样的?给我们看
  • 你想要什么样的清单?在这里分享一个例子。
  • 是数组吗?
  • 我编辑了问题并添加了我期望的输出。谢谢
  • test1test2、...是什么意思??

标签: php codeigniter loops foreach


【解决方案1】:

试试这个对你有帮助,

1) 如果你想要数组:

foreach ($array as $k=>$v){
   foreach ($v['category_details']['get_everything'] as $key => $val){
      $finalArray[$v['name']][] = $val['img_name'];
   }
}

输出将如下所示,

Array
(
[Funny] => Array
    (
        [0] => fapore kapor nosto
    )

[Events] => Array
    (
        [0] => elo khushir eid
        [1] => Eid e bari jacchi
    )

)

2)如果你想要字符串:

foreach ($array as $k=>$v){
   echo $v['name'].'<br/>';
   $i=1;
   foreach ($v['category_details']['get_everything'] as $key => $val){
       echo $i.'. '.$val['img_name'].'<br/>';
        $i++;
   }
}

输出将是,

Funny
   1. fapore kapor nosto
Events
   1. elo khushir eid
   2. Eid e bari jacchi

【讨论】:

    【解决方案2】:

    您需要使用array_column()。首先,您需要循环数组并获取类别名称,还需要获取img_name,为此您必须使用array_column,该函数为您提供img_name 的数组,所以现在再次循环这个新数组并打印 img_name。

    你的数组:

    $arr = array(
        array(
            "id" => 1,
            "name" => "Funny",
            "category_details" => array(
                "get_everything" => array(
                    array(
                        "ci_cat_id" => 1,
                        "img_name" => "fapore kapor nosto"
                    )
                )
            )
        ),  
        array(
            "id" => 4,
            "name" => "Events",
            "category_details" => array(
                "get_everything" => array(
                    array(
                        "ci_cat_id" => 4,
                        "img_name" => "elo khushir eid"
                    ),
                    array(
                        "ci_cat_id" => 4,
                        "img_name" => "Eid e bari jacchi"
                    )
                )
            )
        )
    );
    

    程序:

    foreach($arr as $val){
        echo $val['name']."<br/>";
        $i = 1;
        $img_name = array_column($val['category_details']['get_everything'], 'img_name');
        foreach($img_name as $v){
            echo $i++.' - '.$v."<br/>";;
        }
    }
    

    输出:

    Funny
    1 - fapore kapor nosto
    Events
    1 - elo khushir eid
    2 - Eid e bari jacchi
    

    【讨论】:

      【解决方案3】:

      试试这个

      foreach($array as $value) {
          echo $value['name'];
          foreach($value['category_details'] as $val) {
              $i=1;
              foreach($val as $v) {    
                  echo $i++ . '. ' . $v['img_name'];
              }
          }
      }
      

      希望对您有所帮助..

      【讨论】:

        【解决方案4】:

        我的控制器

        function indexx() {
            $emp['get_all_img'] = $this->model_bundle->get_all_img();
        
            $t = $this->model_bundle->get_category();
        
            $i = 1;
            foreach ($t as $key => $data) {
                //$emp['get_everything'][$key]['id'] = $data['id'];
                $emp['get_everything'][$key]['name'] = $data['name'];
                $emp['get_everything'][$key]['category_details'] =  $this->get_category_wise_image($data['id']);
                $i++;
            }
        
            $this->layout->view('bundle/add_bundle', $emp);
        }
        
        function get_category_wise_image($cat_id) { 
            $data = $this->model_bundle->get_category_wise_image($cat_id);
            $i = 1;
            foreach ($data as $key => $data) {
                $emp['get_everything'][$key]['ci_cat_id'] = $data['ci_cat_id'];
                $emp['get_everything'][$key]['bangla_caption'] = $data['bangla_caption'];
                $emp['get_everything'][$key]['images_id'] = $data['images_id'];
                $emp['get_everything'][$key]['thumnail'] = $data['thumnail'];
                $i++; 
            }
            //echo "<pre>";  
            //print_r($emp);  
            return $emp;
        }
        

        我的模型

        function get_all_img()
        {
            $this->db->select('id, bangla_caption, thumnail');
            $query = $this->db->get('images');
            return $query->result();
        }
        
        function get_category(){
            $this->db->select('id, name');
            $this->db->from('category');
            $this->db->order_by('id');
            $result = $this->db->get(); 
            return $result->result_array(); 
        }
        
         function get_category_wise_image($id){
            $this->db->select('category_images.id as id, img_id, category_images.cat_id as ci_cat_id, images.cat_id as im_cat_id, bangla_caption, name, thumnail, images.id as images_id');
            $this->db->from('category_images');
            $this->db->join('category','category.id = category_images.cat_id','left');
            $this->db->join('images','images.id = category_images.img_id','left');
            $this->db->where('category_images.cat_id',$id);
            $result = $this->db->get(); 
            return $result->result_array(); 
        }
        

        查看(add_bundle.php)

        foreach($get_everything as $tasks){
            //echo "<pre>";
            //print_r($tasks);
        echo '<div class="cat_name">'. $tasks['name'].'</div>';
        echo "<ul>";
            foreach($tasks as $task){
                        foreach($task as $p){ 
                            foreach($p as $pr){ 
                                echo '<div height="50px">
                                <label><input type="checkbox" name="img_id[]" class="second" value="'.$pr['images_id'].'">';
                                echo '<img src="'.base_url()."uploads/".$pr['thumnail'].'" width="60px">"'.$pr['bangla_caption'].'"</label></div>';              
                            }                        
                        }  
                }echo "</ul>";
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-19
          • 1970-01-01
          • 2017-06-07
          • 1970-01-01
          • 2016-12-23
          • 2012-04-26
          • 2015-08-12
          • 1970-01-01
          相关资源
          最近更新 更多