2017-01-21 101 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 />'; 
} 
}; 
相关问题