我希望能夠通過使用數字鍵檢索數組的值。問題是,如果鍵超出了數組長度,我需要它再次遍歷數組。如何在索引落後時在PHP數組中進行換行?
$my_array = array('zero','one','two','three','four','five','six','seven');
function loopArrayValues($array,$key){
//this is what is needed to return
return
}
echo "Key 2 is ".loopArrayValues($my_array,2)."<br />";
echo "Key 11 is ".loopArrayValues($my_array,11)."<br />";
echo "Key 150 is ".loopArrayValues($my_array,11)."<br />";
預期輸出:
Key 2 is two
Key 11 is three
Key 150 is three
我研究的參考資料:
- continuously loop through PHP array (or object keys)
- http://php.net/manual/en/class.infiniteiterator.php
我生成的功能:
function loopArrayValues($array,$key){
$infinate = new InfiniteIterator(new ArrayIterator($array));
foreach(new LimitIterator($infinate,1,$key) as $value){
$return=$value;
}
return $return;
}
該函數的工作原理,但我有一個問題:這是獲得預期結果的好方法嗎?
你的意思是,如果鍵掉到數組的末尾,它應該再次環繞?那麼,最後加上一個就是開始?如果是這樣,就像'$ my_array [$ key%count($ my_array)]'? – halfer
@billyonecan固定,抱歉複製粘貼代碼,而不是數組。陣列中的第一個值是'零' – amaster
@ amaster507無需道歉,我只是確保我沒有錯過任何東西。我仍然不明白爲什麼,如果傳遞的鍵大於數組長度,它會返回三。你能否詳細說明邏輯? – billyonecan