2011-10-07 3 views
0

두 배열을 비교하여 결과에 따라 변수 값을 전달해야합니다. $ additionalTestsSelected에 $ additionalTestsSelected의 값이 있으면 addTestsSelected에 'Yes'를 전달하고 그렇지 않으면 ''을 전달하면 $ additionalTestsAvailable을 루프합니다. 그러나 결과는 모두 ''입니다. 이건 싫어. 내 코드에 문제가 있습니까?두 배열을 비교하고 공통점이 있는지 확인하십시오 (PHP)

$additionalTestsSelected = $appointmentTime->getAdditionalTestsSelected(); 
$additionalTestsAvailable = $appointmentTime->getAdditionalTestsAvailable(); 

foreach($additionalTestsAvailable as $test) { 

    if(in_array($test,$additionalTestsSelected)){ 
     $additionalTests[$test->getName()] = 'Yes'; 
    }else{ 
     $additionalTests[$test->getName()] = ''; 
    } 
} 

답변

0

나는 그들이 in_array 비교 실패 때문에 이름이 같은 경우에도 당신의 검사 결과가 다른 개체로 가져 오기 기능에서 나오는 것으로 의심되는. 수동으로 반복하고 이름을 사용하여 테스트를 비교하면 해결할 수 있습니다.

foreach ($additionalTestsAvailable as $test) { 
    $result = ''; 
    foreach ($additionalTestsSelected as $k) { 
     if ($test->getName() == $k->getName()) { 
      $result = 'Yes'; 
      break; 
     } 
    } 
    $additionalTests[$test->getName()] = $result; 
} 
+0

네, 맞습니다. 그것은 대상입니다. 감사 –

관련 문제