php array_search returning 0 for the first element?
我有这个代码
1 2 3 4 5 6
| $restaurant = array('/restaurant_pos/', '/bar_nightclub_pos/')
$current_page = $_SERVER['REQUEST_URI'];
if (array_search($current_page, $restaurant)) {
echo"KEEP ME";
} |
问题是array_search返回0,因为'/ restaurant_pos /'是导致失败的数组中的第一个元素...有关如何检查值是否在数组中而不失败第一个元素的任何想法
1 2 3
| if (array_search($current_page, $restaurant) !== FALSE ) {
echo"KEEP ME";
} |
手册链接:http://php.net/manual/en/function.array-search.php
-
+1:这在手册中有说明(将链接添加到您的答案中)-实际上,他们会认真解释这一点-因此OP显然没有在询问之前进行研究。
-
哈哈,我什至没见过。 谢谢你!
-
谢谢,我确实看了看文档并注意到红色的大方框,但是我尝试了!== false,但失败了,所以我发布了问题...谢谢@Jan Westerdiep
-
嘿..不用担心。 我们都会犯这些微小的错误(然后花20分钟才能有那种" GOTCHA"的感觉..!)
我认为在这种情况下使用in_array()会更好
1 2 3 4 5 6
| $restaurant = array('/restaurant_pos/', '/bar_nightclub_pos/')
$current_page = $_SERVER['REQUEST_URI'];
if (in_array($current_page, $restaurant)) {
echo"KEEP ME";
} |
http://php.net/manual/zh/function.in-array.php
-
仍然无法获得!== FALSE来与array_search一起使用。 这个为我工作。 谢谢!
我已经使用is_numeric函数来实现相同的目的。
根据我的经验,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| |
在array_search("a", $array[3]) !== FALSE)上它返回TRUE相同,因此为了覆盖所有情况,在null元素上,最好使用:
1 2 3
| if ( (array_search($element, $array) !== FALSE) && ($array) ) {
echo"found";
} |
希望能帮助到你。