簡體   English   中英

PHP循環和IF條件

[英]PHP loop and IF condition

嗨,我有兩個數組,我想檢查它們是否有彼此相同(相同)的元素,如果有,則應該打印在頁面上,而不只是打印No。

我已經編寫了此代碼,但我不知道為什么它不起作用。

PS數組的元素包含文本。

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

你也可以用這個

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

我只能猜測,因為我們不知道數組包含什么,但是我假設您想檢查它們在任何索引處是否具有相同的元素 目前,您只檢查$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/>';
     }
   }
}

第一個問題是您使用的是<=而不是< 如果循環遍歷數組計數並且使用<= ,它將超出數組范圍。 如果您的數組包含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/>';
    }
}
foreach ($array1 as $value) {
    if(in_array($value , $array2)
    {
        echo 'Yes<br/>';
        echo $value;
        $count = $count + 1 ;
    }
}

這是正確的答案:) thnx @hamidreza

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM