我有一個我想要傳遞給函數的urls數組,我將使用cron作業每10分鐘只傳遞其中的2個,我將該數組的最後一個通過的索引存儲在數據庫中,問題是我不知道如何通過前2個元素時,最後一個傳遞的元素是數組中的最後一個,讓我的代碼解釋:如何遍歷一個數組,當我們到達結尾時重新開始?
$sites = array(
'http://www.example.com/',
'http://www.example1.com/',
'http://www.example2.com/',
'http://www.example3.com/',
'http://www.example4.com/',
'http://www.example5.com/'
);
// the number of urls to pass to the function
// Edit: I forgot to say that this number might change later
$sites_to_pass = 2;
// this value is supposed to be stored when we finish processing the urls
$last_passed_index = 2;
// this is the next element's index to slice from
$start_from = $last_passed_index + 1;
// I also want to preserve the keys to keep track of the last passed index
$to_pass = array_slice($sites, $start_from, $sites_to_pass, true);
array_slice()
工作正常,但是當$last_passed_index
是4
我只得到數組中的最後一個元素,當它是5
(最後一個索引)時,我得到一個空數組。
我想要做的是當它的4
獲得最後一個元素和第一個元素,當它是5
這是最後一個元素的索引來獲得數組中的前兩個元素。
我不太擅長與PHP,任何建議我應該做什麼,而不是創建一個函數來檢查索引?
你問來運行它每隔十分鐘,而且當它完成重新開始。你想要它做什麼? – 2013-12-22 16:55:30
@Allendar腳本應定期檢查這些網址。 – Pierre
我認爲已經給出的答案可以幫助你彼得。我只想補充一點,如果你打算由於某種原因不停地運行這個腳本,你應該小心。如果PHP進程(腳本)從不停止,它將繼續消耗服務器中越來越多的內存。 PHP不能真正記憶得很好。如果在另一個cron作業仍在運行而另一個啓動時沒有問題,將crontab設置爲每1分鐘運行一次就沒有問題。 – 2013-12-22 16:59:23