PHP中in_array的一些错误

问题描述 投票:0回答:2

嘿,伙计们,我真的不知道为什么会这样,但是我登机,但我没有找到任何解决方案。

我在PHP中有一个数组:

$default_setting=[
    "test1"=>"",
    "test2"=>""
];

并且我使用此代码来检查是否存在于数组中:

function test($setting_name){
    if(in_array($setting_name,$GLOBALS['default_setting'])){
        return 1;
    }else{
        return 0;
    }
}
test('test1');

现在它应该返回1,但是当存在test1时它返回0。

php arrays exists array-key-exists
2个回答
0
投票

我正在为这个问题添加标签,我发现了array_key_exists标签,并且我知道我不应该使用in_array,而我应该使用array_key_exists并且我的问题现在已经解决了:D


0
投票

就像您说的那样,问题在于in_array在数组中寻找值,而“ test1”和“ test2”是键。 array_key_exists函数可以完成此工作,但是isset函数也许是一种用于检查键是否存在的简单且可移植的方法:

    function test($setting_name) {
      return isset($GLOBALS['default_setting'][$setting_name]) ? 1 : 0;
    }
© www.soinside.com 2019 - 2024. All rights reserved.