2017-01-21 172 views
1

我正在嘗試使用多個foreach和if語句給我一個沒有匹配的人列表。我有下面的代碼,我能夠成功地給我一個它匹配的人員列表。只顯示那些不匹配的PHP

我想要做的是它回顯$ tenant_id foreach中每個沒有在$ value2 foreach中找到的ID,我做錯了什麼?它只會輸出什麼?

foreach($array_93 as $value) { 
    $tenant_id = $value['id']; 
    $limit = 0; 
    foreach($obj->response->entries as $value2) { 
     if($limit==1) break; 
     if ($value2->{100} == 'true' && $value2->{114} == $tenant_id) 
      {echo $value['id']; // This should echo ID's that have not been found.} 
      $limit++; 
     } 
    } 
}; 

UPDATE >>

繼續嘗試,並得到這個工作,我有這一點後,我可以用它來顯示其ID的都是「N」爲每截圖後。第一個是所有的n,所以這不匹配,我現在怎麼才能做出所有n的ID顯示?

foreach($array_93 as $value) { 
echo '<b>'.$value['id'].'</b>'; 
echo '<br />'; 

foreach($obj->response->entries as $value2) { 
    if (strpos($value2->{114}, $value['id']) === false) 
     { 
     echo '<i>n</i>'; 
    } else { 
     echo '<b>Y</b>'; 
    } 
} 
echo '<br />'; 
}; 

enter image description here

+0

你的問題並沒有多大意義,你能嘗試清楚你想達到什麼嗎?如果您可以在代碼示例中添加更清晰的變量名稱以顯示您需要的內容,它也會有所幫助。 –

回答

1

使用帶有Y型找到狀態的標誌:

foreach($array_93 as $value) { 
    $Yfound = false; 

    foreach($obj->response->entries as $value2) { 
     if (strpos($value2->{114}, $value['id']) !== false) { 
      $Yfound = true; 
     } 
    } 
    if(!$Yfound) { 
     echo $value['id'] . ' has n`s only<br>'; 
    } 
} 
0

嗨,你不應該echo馬上:

foreach($array_93 as $value) { 
//echo '<b>'.$value['id'].'</b>'; 
//echo '<br />'; 
//don't print yet 

    $output = ""; //this to store your n and Y strings. 
    $n = 0; //Here you store the number of times Y appears 

    foreach($obj->response->entries as $value2) { 
    if (strpos($value2->{114}, $value['id']) === false) 
    { 
     $output .= '<i>n</i>';//concatenating 

    } else { 
     $output .= '<b>Y</b>'; 
     $n++; 
    } 
    } 

    //then test if there is a y and echo output. 
    if($n == 0){ 
    echo '<b>'.$value['id'].'</b>'; 
    echo '<br />'; 
    echo $output; 
    echo '<br />'; 
} 
}; 
相關問題