gpt4 book ai didi

php - in_array 没有任何意义

转载 作者:可可西里 更新时间:2023-11-01 12:48:32 25 4
gpt4 key购买 nike

$arr = array(
'test' => array(
'soap' => true,
),
);

$input = 'hey';
if (in_array($input, $arr['test'])) {
echo $input . ' is apparently in the array?';
}

结果: 嘿显然在阵列中?

这对我来说没有任何意义,请解释原因。我该如何解决这个问题?

最佳答案

那是因为 true == 'hey' 由于 type juggling .您正在寻找的是:

if (in_array($input, $arr['test'], true)) {

它强制基于 === 而不是 == 进行相等性测试。

in_array('hey', array('soap' => true)); // true

in_array('hey', array('soap' => true), true); // false

为了更好地理解类型杂耍,你可以玩这个:

var_dump(true == 'hey'); // true (because 'hey' evaluates to true)

var_dump(true === 'hey'); // false (because strings and booleans are different type)

更新

如果你想知道是否设置了一个数组键(而不是一个值是否存在),你应该使用isset()像这样:

if (isset($arr['test'][$input])) {
// array key $input is present in $arr['test']
// i.e. $arr['test']['hey'] is present
}

更新 2

还有 array_key_exists()可以测试数组键的存在;但是,只有在相应的数组值可能为 null 时才应使用它。

if (array_key_exists($input, $arr['test'])) {
}

关于php - in_array 没有任何意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com