php array_search在数字1时没有给出期望的输出。

9 浏览
0 Comments

php array_search在数字1时没有给出期望的输出。

我对array_search输出的结果有问题,使用这段代码时,我需要在多维数组$progInLvl的第0列中搜索不同的id($progId)。然而,当搜索整数1时,它不会返回正结果,而搜索2或3时则正常工作。你知道这可能是从哪里出现的吗?\n谢谢。

0
0 Comments

问题出现的原因是array_search()函数返回的是索引值,而不是布尔值。当使用if (!array_search($progId, $newArr))时,如果返回的索引值是0,会被解释为假值。因此,需要使用严格相等运算符(===)来确保类型和值都匹配。

解决方法是将代码修改为if (array_search($progId, $newArr) === false),这样只有当array_search()返回的索引值为false时,条件才会满足。这样就可以正确判断索引值是否存在。

总结起来,php array_search not giving expected output with number 1问题的解决方法是使用严格相等运算符来判断array_search()返回的索引值是否为false。

0