-11

これが私のコードです

$arr = array('id', 'string');
    // check keys do not contain id or string
    if(in_array($arr, $keys) == true) {
        return false;
    } else {
        var_dump($keys);
        var_dump($arr);
    }
            return true;

関数からの応答。

array (size=2)
  0 => string 'mohooho' (length=14)
  1 => string 'string' (length=6)
array (size=2)
  0 => string 'id' (length=2)
  1 => string 'string' (length=6)
boolean true

私は怒っていますか?それとも私は疲れていますか?ここで何が起こっているのですか?

編集

私のマシンではこれがあり、母の人生で私を誓うことができます。私はwampphp5.4を使用しています。

// check keys do not contain id or string
    if(in_array(array('string', 'id'), array('string', 'id'))) {
        echo 'IN ARRAY';
    } else {
        echo 'ERROR!';
    }

http://writecodeonline.com/php/ <<<<ここでコードをテストする

私はERROR!

しかし、これは機能します、

// check keys do not contain id or string
    if(in_array('string', array('string', 'id'))) {
        echo 'IN ARRAY';
    } else {
        echo 'ERROR!';
    }

適切な応答が得られましたIN_ARRAY

何かご意見は?

4

1 に答える 1

2

これが戻る理由を私が考えることができる理由ERROR

if (in_array(array('string', 'id'), array('string', 'id')))
{
    echo 'IN ARRAY';
}
else
{
    echo 'ERROR!';
}

これは、PHPが各干し草の山の値を針自体に対してチェックしているためです。次のような2つの配列があるとします。

$a = array('string', 'id');
$b = array('string', 'id');

$a$b同じ権利ですか?これらをに供給しin_array$a針であり、干し草の山である場合$b、チェックは次のようになりますか?誤り。しかし、このような配列を作成して実行すると、次のようになります。$b[0]$ain_array($a, $b)

$a = array('string', 'id');
$b = array(array('string', 'id'), 'id');

はそれ自体$b[0]に等しいか、干し草の山の中で発生した場所であるため、trueを返します。$a$a$b

于 2013-03-16T07:44:18.767 に答える