mea*_*gar 14
array_search并没有启动索引1搜索试试这个例子:
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('blue', $array); // $key = 0
?>
Run Code Online (Sandbox Code Playgroud)
无论你的代码是什么问题,它的第一个元素都不是索引0.
您更有可能使用==而不是===检查返回值.如果array_search返回0,表示第一个元素,则以下代码将不起作用:
// doesn't work when element 0 is matched!
if (false == array_search(...)) { ... }
Run Code Online (Sandbox Code Playgroud)
相反,您必须检查使用===,它比较值和类型
// works, even when element 0 is matched
if (false === array_search(...)) { ... }
Run Code Online (Sandbox Code Playgroud)
请参阅手册,它可能对您有帮助: http://www.php.net/manual/en/function.array-search.php
如果您想要做的是将密钥加一,您可以执行以下操作:
function my_array_search($needle, $haystack, $strict=false) {
$key = array_search($needle, $haystack, $strict);
if (is_integer($key)) $key++;
return $key;
}
my_array_search($xml_service_array);
Run Code Online (Sandbox Code Playgroud)