仅显示与PHP

时间:2017-01-21 23:18:51

标签: php if-statement foreach strpos

我正在尝试使用多个foreach和if语句给我一个未匹配的人员列表。我有下面的代码,我能够成功地给我一个它匹配的人的列表。

我想要做的是回复每个来自$ tenant_id foreach的ID,这些ID在$ value2 foreach中找不到,我做错了什么?它只会输出什么?

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++;
        }
    }
};

更新>>

继续尝试让这个工作我已经到了这一点,我能够使用它来显示哪个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

2 个答案:

答案 0 :(得分:1)

使用具有Y-found状态的标志:

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>';
    }
}

答案 1 :(得分:0)

嗨,你不应该马上回应:

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 />';
 }
};