2014-10-10 4 views
0

JSON을 사용하여 출력 할 수있는 배열을 만들려고합니다. 어떤 이유에서 건 배열에 하나의 요소 만 추가합니다. 객체와 함께 여러 이메일 주소가있는 경우에도 마찬가지입니다. 나는 루프가 정확한 시간을 실행하기 때문에 이것을 안다. 그러나 새 값은 배열에 추가되지 않습니다. 나는 array_push를 시도했으나 배열은 배열을 형성하고 jQuery는 올바르게 처리하지 못한다.foreach 루프를 사용하는 PHP 배열 빌드

 $load_model = $this->loadModel("LoadModel"); 
     $x = $load_model->updateLoad($LoadRate, $carrID, $comment, $temp, $loadStatus, $contactID, $load_id); 
      if($x==true){ 
       $arr=array(); 
       foreach($load_model->loadEmailAddresses($load_id) as $val){ 
        $arr['Email']= $val->Email; 
        $arr['ContactId']= $val->ContactId; 
       } 
       echo json_encode($arr); 
      } 

아무도 아이디어가 없습니까?

답변

4

루프에서 동일한 요소를 반복해서 설정하고 있습니다. 루프 할 때마다 $arr['Email']$arr['ContactId']이 설정됩니다. 결국에는 루프를 통과 한 마지막 값만 가져옵니다. 전자 메일 및 연락처 ID에 대한 배열을 만든 다음 해당 배열을 $arr에 추가해야합니다.

$load_model = $this->loadModel("LoadModel"); 
$x = $load_model->updateLoad($LoadRate, $carrID, $comment, $temp, $loadStatus, $contactID, $load_id); 
    if($x==true){ 
     $arr=array(); 
     foreach($load_model->loadEmailAddresses($load_id) as $val){ 
      $arr[] = array('Email' => $val->Email, 'ContactId' => $val->ContactId); 
     } 
     echo json_encode($arr); 
    } 
+0

아 dhur, 나는 그것을 놓쳤습니다. 이제 Jquery에 전달 된 다차원 배열이 있습니다. 반환 된 데이터를 반복해서 처리합니까? – Waragi

+0

그래, 당신은 jQuery에서 그 데이터가 임의의 수의 레코드가 될 수 있다는 것을 알고 그 데이터를 처리해야 할 것이다. – slapyo

1

당신은이 시점에서 제대로 성장해야

$arr[] = array(
    'Email'=>$val->Email, 
    'ContactId'=>$val->ContactId, 
); 

배열에 foreach 루프의 라인을 변경해야합니다.

관련 문제