Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果条件等于数组值_Php - Fatal编程技术网

Php 如果条件等于数组值

Php 如果条件等于数组值,php,Php,我有一个数组。在这个数组中,我的水果名可以是梨,也可以是苹果,这取决于我在上一页中选择的按钮。假设我选择了苹果,if语句似乎不起作用,但它确实起了作用。它呼应了$FROUTTYPE,它似乎得到了苹果,苹果应该启动我的if语句并向我显示“你做到了!”,但我的if条件没有。我做错了什么 阵列 水果名称=苹果 我的功能 function GetField($arr, $field) { $result = ' '; foreach($arr

我有一个数组。在这个数组中,我的水果名可以是梨,也可以是苹果,这取决于我在上一页中选择的按钮。假设我选择了苹果,if语句似乎不起作用,但它确实起了作用。它呼应了
$FROUTTYPE
,它似乎得到了苹果,苹果应该启动我的if语句并向我显示“你做到了!”,但我的if条件没有。我做错了什么

阵列

水果名称=苹果

我的功能

    function GetField($arr, $field)
    {
        $result = '       ';
        foreach($arr as $line)
        {
            if (explode('=', $line) [0] == $field)
            {
                $result = explode('=', $line) [1];
            }

        }

        return $result;
    }

    $FruitType= GetField($array, 'Fruit_Name');

    echo $FruitType;

    if ($FruitType == "Apple")
    {
        echo "You did it!";
    }
    else if ($FruitType == "Pear")
    {
        echo "Its not Pear!";
    }
在php中比较字符串(实际上,您应该对任何数据类型进行比较)时,必须使用===表示法。==仅用于数字,当用于字符串时会导致像您所面临的问题一样的问题

所以你的代码应该是

If($FruitType==“Apple”)


正如Dagon提到和解释的那样,Getfield函数是不正确的。

if(explode('=',$line)[0]==$field)
这将不会像您认为的那样起作用。我们将对此进行研究。谢谢。你所说的数组只是一个字符串,所以foreach不能工作either@Dagonexplode语句应该如何编写?