首先,你需要能夠開始從循環數組中的任何位置。
當然,您可以使用for
循環,但我認爲while
循環在這裏更合適。
$length1 = count($list1);
$length2 = count($list2);
//now indexes are initialized to variable values
$a = $var1; //start position $var1 is an integer variable between 0 and ($length1 - 1)
$b = $var2; //start position $var2 is an integer variable between 0 and ($length2 - 1)
while ($a < $length1) {
while ($b < $length2) {
echo '<li>', $list1[$a], ' ', $list2[$b], '</li>';
$b++;
}
$b = 0; //reset inner loop each time it ends
$a++;
}
接下來,我們需要一種方法來停止都循環,如果組合結束之前達到每頁($limit
)結果的最大數量。
$length1 = count($list1);
$length2 = count($list2);
$a = $var1;
$b = $var2;
$counter = 0;
while ($a < $length1) {
while ($b < $length2) {
echo '<li>', $list1[$a], ' ', $list2[$b], '</li>';
$counter++;
if($counter === $limit) break 2;
$b++;
}
$b = 0;
$a++;
}
最後,我們必須找到正確的值$var1
及以上$var2
,根據當前$page
和$limit
(從第1頁開始)上。這是明確的算術,我不會在這裏解釋。
全部放在一起:
$length1 = count($list1);
$length2 = count($list2);
$offset = $limit * ($page - 1);
$a = (int)($offset/$length2);
$b = $offset % $length2;
$counter = 0;
while ($a < $length1) {
while ($b < $length2) {
echo '<li>', $list1[$a], ' ', $list2[$b], '</li>';
$counter++;
if($counter === $limit) break 2;
$b++;
}
$b = 0;
$a++;
}
*「?是否有顯示與分頁結果的方式」 * - 你有沒有Google'd「PHP分頁」?我敢打賭,我可以在5秒內找到50個結果*平坦的*我不會這樣做,那是你的工作。 – 2014-10-19 02:34:29
@ Fred-ii-我打賭他/她做了......我做了,並沒有發現與array_的_組合相關的任何相關內容。我發現這很有趣。 – matpop 2014-10-19 16:32:07
@ Fred-ii-,你不想回答我的問題,然後評論。不要浪費每個人的時間用你無用的評論。 – user2171083 2014-10-19 17:45:21