2014-07-09 1 views
0

최근 CodeIgniter PHP foreach 루프에서 객체를 생성해야하는 문제가 발생했습니다. 기본적으로 내 이메일 목록을 필터링하고 결과를 기반으로 개체를 생성 한 다음보기로 전달하고 다른 foreach 루프를 사용하여 콘텐츠를 나열해야합니다. 여기 Codeigniter가 배열을 보거나 배열을 foreach 루프로 객체로 변환

내가 가진 무엇을하고 성공적으로 배열 $ EMAIL_RAW을 생성하지만 내가 대신 객체로 생성 할 수있는 올바른 방법을 찾을 수 없습니다 :

는 PHP :

$email_preliminary=$this->db->select('email')->get('user'); 

    $email_raw = array(); 

    foreach ($email_preliminary->result() as $row): 

     $email_to_test=$row->email; 

     if(filter_var($email_to_test, FILTER_VALIDATE_EMAIL)||preg_match('/\d*[1-9]\d*/', $email_to_test)) 
     { 
      $email_raw[] = $email_to_test; 
     } 

     else{ 

     } 
    endforeach; 

사람들은 제안 나는 다음을 사용한다 :

   $email_raw[] = (object)array('email'=>$email_to_test); 

그러나 오류 msg는 객체가 아닙니다.

$ email_raw를 객체로 생성 할 수있는 다른 방법은 무엇입니까? 그래서 뷰에 전달하고 foreach를 사용하여 내용을 나열 할 수 있습니까?

감사합니다.

업데이트 :

 $data['record']=array_unique($email_raw); 

     $this->load->view('login&signup/signup_test_get_wrong_email_view', $data); 

와 내가 사용하는보기 :

 <?php foreach ($record->result() as $row): ?> 

    <span><?php echo $row->email; ?></span><br> 

     <?php endforeach; ?> 
+0

'$ email_raw' 생성이 끝나면'$ email_raw = (object) $ email_raw;'를 사용하십시오. '$ email_raw' 변수 전체가 object가됩니다. – machineaddict

+0

왜 배열 대신 객체를 생성 하시겠습니까? 배열은 정상적으로 작동하며 일반적으로보다 다양합니다. – Dan

+0

당신이 연관 배열로 잘못 생각한 것 같아요. 그렇지 않으면 배열에 객체를 캐스팅 할 필요가 없습니다. 왜냐하면이 두 가지 객체의 사용법에 차이가 없기 때문입니다. – MahanGM

답변

1

foreach 객체와 배열을 반복 할 수 요청에 따라

, 여기에 컨트롤러의 나머지 부분입니다. 배열을 객체로 변환 할 필요가 없습니다. 당신은 단순히 당신이 방금 구축 한 해당 배열을 반복 뷰에서

$email_preliminary=$this->db->select('email')->get('user'); 

$email_raw = array(); 

foreach ($email_preliminary->result() as $row): 

    $email_to_test=$row->email; 

    if(filter_var($email_to_test, FILTER_VALIDATE_EMAIL)||preg_match('/\d*[1-9]\d*/', $email_to_test)) 
    { 
     $email_raw[] = $email_to_test; 
    } 

    else{ 

    } 
endforeach; 

// ... code 

$data['record']=array_unique($email_raw); 

$this->load->view('login&signup/signup_test_get_wrong_email_view', $data); 

: 나는 당신의 의심을 추측

<?php foreach ($record as $email): ?> 

    <span><?php echo $email; ?></span><br> 

<?php endforeach; ?> 

는 방법을 아는의 부족에서 오는 것이 위처럼

컨트롤러를 남겨 $data['record'] 변수는 다음과 같습니다. $data['record']을 설정 한 직후 print_r($data['record']);을 사용하십시오.

+0

tnx 많이. 그것은 정말로 나를 도왔다. –

관련 문제