2013-08-05 3 views
0

다차원 배열을 반복하고 결과를 변수에 저장하려고합니다. 결과를 반환하고 저장할 수 있습니다. 즉, 나는 슈퍼 정보를 주변에서 둘러 보았고 내 문제로 나를 도울 수있는 너무 많은 것을 발견 할 수 없다. 이것은 내가 지금까지 시도한 것이다.다차원 루프를 통해 반복

public function findPolicyIds($coverageId = null) { 
    $policyid = $this->Policy->find('all', array(
     'recursive' => -1, 
     'conditions' => array('Policy.coverage_id' => $coverageId), 
     'fields' => array('Policy.id'))); 

     foreach($policyid as $id) { 

     } 
     return $id; 
} 

스크립트를 실행할 때 하나의 결과 만 얻습니다. foreach 문없이 스크립트를 실행하고 policyid를 반환하면 다음과 같은 결과가 나타납니다.

Array 
(
[0] => Array 
    (
     [Policy] => Array 
      (
       [id] => 520015be-2bc8-48ca-b5d1-63ebae78509d 
      ) 

    ) 

[1] => Array 
    (
     [Policy] => Array 
      (
       [id] => 520015be-48bc-496d-b8f8-63ebae78509d 
      ) 

    ) 

[2] => Array 
    (
     [Policy] => Array 
      (
       [id] => 520015be-5a08-47b6-9e97-63ebae78509d 
      ) 

    ) 

나는이 ID를 루프 처리하여 저장하고 다른 방법으로 되돌릴 수 있습니다.

+1

루프가 재설정되는'$의 id' :

에만 ID의 배열을 반환하기 위해, 당신은 그 (것)들을 수집 한 후 새 컬렉션을 반환해야합니다. '$ id'를 반환하면 목록의 마지막 항목을 반환하게됩니다. –

+0

$ id가 재설정되는 이유에 대해 설명 할 수 있습니까? 또한 배열의 모든 ID를 반환하는 방법에 대해 설명합니다. 디버그, print_r 또는 var_dump 라인을 따라 뭔가를 생각하고있었습니다. – SkillSet

답변

0

foreach 루프는 policyid 배열의 각 요소를 차례로 $id 변수에 할당합니다. 다시 할당되는만큼 재설정되지 않습니다 (반복되는 배열의 각 요소에 대해). 각 항목에 대한

public function findPolicyIds($coverageId = null) { 

    .... 

    $all = array(); 
    foreach($policyid as $id) { 
     // here we are collecting only the ID value... 
     $all[] = $id['Policy']['id']; 
    } 

    return $all; 
} 
+0

감사합니다 !! 그게 정확히 내가 필요했던 것! – SkillSet

관련 문제