PHP循环和IF条件

时间:2014-06-24 17:46:13

标签: php arrays loops if-statement

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

我已经制作了这段代码,但我不知道为什么它不起作用。

P.S。数组元素包含文本。

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

4 个答案:

答案 0 :(得分:1)

您也可以使用

<?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" ;
}
?>

答案 1 :(得分:0)

我只能猜测,因为我们不知道数组包含什么,但我想你要检查它们是否在任何索引处都有相同的元素目前,你只是检查$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/>';
     }
   }
}

答案 2 :(得分:0)

第一个问题是您使用&lt; = 而不是&lt; 。如果您循环遍历数组计数并且使用&lt; = ,它将遍历数组边界。如果您的数组包含4个元素,则最后一个数组值位于索引3:$arr[3](第四个位置),但是您尝试在最后一次迭代时获取$arr[4]上的值,这将导致错误。你应该检查你的error_log。

试试这个:

$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循环:

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

答案 3 :(得分:0)

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

这是正确答案:) thnx @hamidreza