PHP循环和IF条件

PHP循环和IF条件,php,arrays,loops,if-statement,Php,Arrays,Loops,If Statement,嗨,我有两个数组,我想检查它们是否有任何元素彼此相等(相同),如果有,它们应该出现在页面上,如果不只是打印否 我已经做了这个代码,但我不知道为什么它不工作 另外,数组的元素包含文本 $res = count($title1); for ($j = 0; $j <= $res; $j++) { if(strtoupper($title2[$j]) == strtoupper($title1[$j])) { echo 'Yes<br/>';

嗨,我有两个数组,我想检查它们是否有任何元素彼此相等(相同),如果有,它们应该出现在页面上,如果不只是打印否

我已经做了这个代码,但我不知道为什么它不工作

另外,数组的元素包含文本

$res = count($title1);

for ($j = 0; $j <= $res; $j++) {
   if(strtoupper($title2[$j]) == strtoupper($title1[$j]))
    {
        echo 'Yes<br/>';
        echo $title2[$j].'==='.$title1[$j].'<br/';
    }
   else{
        echo 'No<br/>';
    }
}
$res=count($title1);

对于($j=0;$j我只能猜测,因为我们不知道数组包含什么,但我假设您想检查它们在任何索引中是否有相同的元素。目前,您只检查
$title1
是否在同一索引中有与
$title2
相同的元素。因此,如果您有两个数组

['a', 'b'], ['b', 'a']
它检查是否
'A'=='B'
,然后检查是否
'B'=='A'

您需要做的是:

for ($j = 0; $j < count($title1); $j++) {
   for ($k = 0; $k < count($title2); $k++) {
     if(strtoupper($title2[$k]) == strtoupper($title1[$j]))
     {
        echo 'Yes<br/>';
        echo $title2[$j].'==='.$title1[$j].'<br/>';
     }
     else {
        echo 'No<br/>';
     }
   }
}
for($j=0;$j”;
回声$title2[$j].='.$title1[$j].
; } 否则{ 回音“否
”; } } }
您也可以使用它

<?php
$count = 0
foreach ($array1 as $value) {
    if(in_array($value , $array2)
    {
        echo 'Yes<br/>';
        echo $value;
        $count = $count + 1 ;
    }
}
if($count == 0 )
{
    echo "no" ;
}
?>

第一个问题是您正在使用foreach($array1作为$value){
if(在数组中($value,$array2)
{
回显“是
”; echo美元价值; $count=$count+1; } }

这是正确的答案:)thnx@hamidreza

你说的“它不起作用”是什么意思?你希望你的代码做什么?它实际上在做什么?你能给出一些你需要的示例输入和预期输出吗?你的代码要求它们不仅具有相同的值,而且必须具有相同的值索引。因此,如果一个索引0处有“Joe”,另一个索引0处有“Joe”在索引1中,它们将被视为不匹配。如果这是要求,那么看起来您是对的,但是如果您需要检查每个数组的每个值是否匹配,那么其他数组的答案应该会起作用。为什么要在两个数组中循环?这是
O(n^2)
。您只需在第一个数组中循环,并检查它是否在另一个数组中设置。此外,您的代码将在最后一次迭代中产生未定义的索引错误消息。请参阅我的回答。正如我的回答所述,我在这两个数组中循环,因为它会检查项目是否存在于另一个数组中的任何位置。
$cout=$count+1;
(打字)应读为
$count=$count+1;
$res = count($title1);

for ($j = 0; $j < $res; $j++) {
    //you need to check to see if $j'th position is available in $title2 array
    if(isset($title2[$j]) && strtoupper($title2[$j]) == strtoupper($title1[$j]))
    {
        echo 'Yes<br/>';
        echo $title2[$j].'==='.$title1[$j].'<br/';
    }
    else{
        echo 'No<br/>';
    }
}
foreach($title1 as $key => $value) {
    if (isset($title2[$key]) && 
        strtoupper($title2[$key]) == strtoupper($title1[$key])) {
        echo 'Yes<br/>';
        echo $title2[$key].'==='.$title1[$key].'<br/';
    }
    else {
        echo 'No<br/>';
    }
}
foreach ($array1 as $value) {
    if(in_array($value , $array2)
    {
        echo 'Yes<br/>';
        echo $value;
        $count = $count + 1 ;
    }
}