2016-09-20 45 views
1

我有一個多維數組。我想通過foreach循環提取這個數組,並希望顯示在一個無序列表中。如何解決這個問題。請幫幫我。我正在嘗試2天,但無法獲得任何解決方案。我想我在循環中很弱。如何通過foreach循環提取這個數組

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 
+2

你試過這麼做嗎?把你的代碼。不管它是錯的還是正確的。把這些代碼放在這裏?你的預期結果是什麼樣子?告訴我們 –

+1

你想要什麼樣的清單?在這裏分享一個例子。 –

+0

它是一個數組嗎? –

回答

0

我的控制器

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>"; 
} 
0

輸出試試這將可以幫助你,

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 
+0

謝謝大家,我已經解決了這個問題。 – kazinayem2011

1

您需要使用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 
0

試試這個

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

希望這有助於..