有這麼一個問題,一個數組隊列,數組長度是固定的,當向輸入插入元素時,超過最大長度後,數組自動頭開始再覆蓋填充。
這時候,整個陣列就形成了一個環形。如下圖。
// 定義一個陣列
$test_array = array();
function push_array($value &) &$ test_array) {
if (count($test_array)
// 當陣列小於指定長度時,請直接加入元素
// 當陣列大於指定長度時,使用each取出目前指標的元素,並指標下移
// 一般使用取模演算法,取得已涵蓋的key,然後直接覆蓋就可以了
$test_array[$k] = $value;
}
}push_array(0,$test_array);
}
push_array(push_array~1); 2,$test_array);
push_array(3,$test_array);
push_array(4,$test_array);
push_array(5,$test_array);
push_array(6,$_array);
push_array(7,$test_array);
push_array(8,$test_array);
push_array(9,$test_array);
push_array(10,$test_array);
push_array(13,$test_array);
push_array(14,$test_array);
push_arrayarray5;$ 🎜>push_array(16,$test_array);
push_array(17,$test_array);
push_array(18,$test_array);
push_array(19,$test_array); $test_array);
push_array(21,$test_array);
push_array(22,$test_array);
push_array(23,$test_array);
push_testy(241$_array(array);
push_testy(24); >var_dump($test_array);exit;
測試結果:
除了each以外,下面的陣列指標函數也很好用
current() - 傳回陣列中的目前元素的值
end() - 將內部指標指向陣列中的最後一個元素,並輸出
<span>array(12) { [0]=> int(24) [1]=> int(13) [2]=> int(14) [3]=> int(15) [4]=> int(16) [5]=> int(17) [6]=> int(18) [7]=> int(19) [8]=> int(20) [9]=> int(21) [10]=> int(22) [11]=> int(23) }</span>
prev() - 將內部指標指向陣列中的上一個元素,並輸出