如何在in_array()中使用if语句?

时间:2017-12-30 16:11:57

标签: php html

我试图检查离境国家或抵达国家是否在欧盟境内。 这是我的代码:

$CountrysEU = array('Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czech Republic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom');
$DepartureCountry = 'Croatia';
$ArrivalCountry = 'Belgium';

if(in_array($DepartureCountry, $CountrysEU) || in_array($ArrivalCountry, $CountrysEU)){
    echo 'EU';
}
else {
    echo 'NotEU';
}
  

它回显“NotEU”,$ArrivalCountry'Belgium'时不可能是真的。

有谁知道in_array是否可以这样工作,如果是,那该如何修复该代码?

我不明白为什么这段代码不起作用,如果我用||删除第二部分,代码就可以了:

$CountrysEU = array('Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czech Republic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom');
$DepartureCountry = 'Croatia';
$ArrivalCountry = 'Belgium';

        if(in_array($DepartureCountry, $CountrysEU)){
            echo 'EU';
        }
        else {
            echo 'NotEU';
        }

我的第三次尝试:

$CountrysEU = array('Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czech Republic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom');
$DepartureCountry = 'Croatia';
$ArrivalCountry = 'Belgium';

        if(in_array($DepartureCountry, $CountrysEU || in_array($ArrivalCountry, $CountrysEU)){
            echo 'EU';
        }
        else {
            echo 'NotEU';
        }
  

它回应:“解析错误:语法错误,意外'回声'(T_ECHO)在第137行的C:\ xampp \ htdocs \ Sofort-Flug-Entschädigung\ CCPSeven.php”

修改 变量$DepartureCountry$ArrivalCountry是从页面中删除的,如果我用简单的字符串定义第一个代码就可以了,但这对我没有意义,因为如果删除{{1部分。

2 个答案:

答案 0 :(得分:1)

我在回答我自己的问题。

代码运行正常,问题是已删除的变量中有" ",这就是为什么它输出NoEU

示例:var = "Belgium",而不是var = " Belgium"

所以在发布任何问题之前,请检查您的变量......

答案 1 :(得分:0)

最后一个示例在)中缺少结束in_array - 以下工作按预期进行,但已更正了)

<?php

    $countries = array(
        'Austria',
        'Belgium',
        'Bulgaria',
        'Croatia',
        'Cyprus',
        'Czech Republic',
        'Denmark',
        'Estonia',
        'Finland',
        'France',
        'Germany',
        'Greece',
        'Hungary',
        'Ireland',
        'Italy',
        'Latvia',
        'Lithuania',
        'Luxembourg',
        'Malta',
        'Netherlands',
        'Poland',
        'Portugal',
        'Romania',
        'Slovakia',
        'Slovenia',
        'Spain',
        'Sweden',
        'United Kingdom'
    );

    $depart = 'Croatia';
    $arrive = 'Belgium';

    if( in_array( $depart, $countries ) || in_array( $arrive, $countries ) ){
        echo 'EU';
    } else {
        echo 'NotEU';
    }
?>

输出

EU