2017-10-13 168 views
-2

如何獲取foreach循環內的值?我被困在代碼中。 爲了使總之,這裏是我的代碼:如何顯示foreach循環內的值

$students = $this->db->table('sys_user') 
    ->select(['*']) 
    ->leftjoin('sys_user_student', 'sys_user_student.user_id', '=', 'sys_user.user_id') 
    ->leftjoin('sys_mf_section', 'sys_mf_section.section_id', '=', 
       'sys_user_student.section_id') 
    ->leftjoin('sys_mf_grade', 'sys_mf_grade.grade_id', '=', 'sys_mf_section.grade_id') 
    ->where('sys_user.user_type_id', '4') 
    ->where('sys_mf_section.section_id', $request->getParam('section_id')) 
    ->where('sys_mf_grade.grade_id', $request->getParam('grade_id')) 
    ->get()->toArray();  

    $result = array(); 
    foreach ($students as $key => $value) { 
     $user_id = $value->user_id; 

     $logs = $this->db->table('sys_user') 
     ->where('user_id', $user_id) 
     ->get()->toArray(); 

     $result[] = $logs; 
    } 

這裏的view文件。順便說一句,即時通訊使用twig作爲我的模板引擎

  <tbody> 
      {% for student in students %} 
      <tr> 
       <td class="t-center">{{ student.identification_number }}</td> 
       <td class="t-center">{{ student.last_name }}, {{ student.first_name }}</td> 
       <td class="t-center">{{ student.gender }}</td> 
       {% for results in result %} 
        <td class="t-center">{{ results.tapped_time | date('h:i:s A') }}</td> 
       {% endfor %} 
      </tr> 
      {% endfor %} 
      {% if students is empty %} 
      <tr> 
       <td colspan="4">No Data</td> 
      </tr> 
      {% endif %} 
     </tbody> 
+3

有沒有U試圖print_r或var_dump它? – tiacocstoe

+0

是的,我傾倒它,它有價值,但是當我把它放在視圖中,它給我空 – Tallgeese

+2

把它放到視圖?那是什麼意思?你將需要顯示更多的代碼 – Steve

回答

-1

你(結果)具有陣列的陣列,像 [「名」 =>值「名稱2」 =>值2],[ '名'=>值 '名稱2'=>值2] 所以,你必須使用2 foreach循環看到的結果

foreach ($results as $index=>$array){ 
foreach ($array as $k=>$v){ 
    echo $k." = ".$v."<br>"; 
} 
} 

第二個答案(正確):

foreach ($students as $key => $value) { 
     $user_id = $value->user_id; 

     $logs = $this->db->table('sys_user') 
     ->where('user_id', $user_id) 
     ->get()->toArray(); 
     foreach ($logs as $l){ 
      $result[] = $l; 
      } 
    } 

想想製作它李在另一個步驟中可以這樣做:

foreach ($logs as $l){ 
       $result[$user_id][] = $l; 
       } 
+0

請閱讀此答案,這是正確的 – tiacocstoe

+0

{%爲結果中的結果百分比} {%for results123 in results%} {{results123 .tapped_time |日期('h:i:s A')}} {%endfor%} {%endfor%} – tiacocstoe

+0

顯然最好的方法是用array_merge修改php,而一個邏輯的東西是tjhat你得到所有的結果,但你應該通過用戶ID來獲取它們 – tiacocstoe