我正在嘗試查找數組中的值。這個數組總是從0開始的。 不幸的是array_search開始用數組元素1搜索。 所以第一個元素總是被忽略。陣列搜索中的問題
我該如何「移動」該數組以1開始,還是使數組搜索從0開始?該數組來自XML Web服務,所以我不能集結修改結果。
我正在嘗試查找數組中的值。這個數組總是從0開始的。 不幸的是array_search開始用數組元素1搜索。 所以第一個元素總是被忽略。陣列搜索中的問題
我該如何「移動」該數組以1開始,還是使數組搜索從0開始?該數組來自XML Web服務,所以我不能集結修改結果。
請參閱手冊,它可以幫助你: 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);
嗯thanx,但你可以解釋更多,因爲我用零但不工作。 array_search()從0鍵開始? – 2010-02-01 20:50:50
確定索引關鍵字是零,小心以meagar作爲例子 – Ghazanfari 2010-02-01 20:53:48
這個例子在技術上可以解決你的問題,但是結果鍵將指向你想要找的元素。儘管如此,你仍然會找到元素0。因此,它返回的密鑰實際上不會告訴你在哪裏查找數據。 – meagar 2010-02-01 20:55:01
array_search
不不開始索引1搜索嘗試這個例子:
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('blue', $array); // $key = 0
?>
不管是什麼問題,我s並不是它的第一個元素是索引0.
它更可能是您使用==
而不是===
來檢查返回值。如果array_search返回0,表示第一個元素,下面的代碼將無法正常工作:
// doesn't work when element 0 is matched!
if (false == array_search(...)) { ... }
相反,你必須使用===
,這兩個值進行比較,檢查中鍵入
// works, even when element 0 is matched
if (false === array_search(...)) { ... }
哇,哥們,真棒,我想我找到了問題。 – 2010-02-01 20:52:31
在這個網站上的這個大紅色警告**框中說:http://php.net/manual/en/function.array-search.php閱讀手冊頁有時真的有幫助! – 2010-02-01 20:54:13
也許你應該展示你的代碼和你如何搜索,因爲顯然'array_search'工作正確但也許它不是你的目的正確的功能。 – 2010-02-01 20:52:52