2017-10-13 3 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

그래, 내가 덤프, 그리고 가치가있다,하지만 내가보기에 넣어, 그것은 나를 null – Tallgeese

+2

보기에 넣어? 그게 무슨 뜻 이죠? 더 많은 코드를 보여줄 필요가 있습니다 – Steve

답변

-1

당신은 (결과) 배열의 배열, [[ '이름'=> 값과 같이, 'NAME2'=> 값 2를], [이 '이름'=> 값, 'NAME2'=>] 그래서 당신은이 foreach는 결과

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

두 번째 대답 (적절한)를 참조 루프를 사용해야 할 값 2 : 만드는 방법에 대한

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

생각을 It li 다른 단계에서 이것을 수행 :

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

이 답변을 올바르게 읽으십시오. – tiacocstoe

+0

{결과 % 결과} {결과 % 결과 내 %} {{results123 .tapped_time | 분명히 가장 좋은 방법은 array_merge를 사용하여 PHP를 수정하는 것이고, 하나의 논리적 인 것은 tjhat입니다. 모든 결과를 얻을 수 있습니다. (예 : 'h : i : s A')}} {% endfor %} {% endfor %} – tiacocstoe

+0

분명히 가장 좋은 방법은 PHP를 array_merge로 수정하는 것입니다. ,하지만 사용자 ID로 가져와야합니다. – tiacocstoe