1

現在、AJAX 呼び出しでループしようとしている画像のフォルダーがあり、最後まで一度に 3 つを返し、最初からやり直したいと考えています。

最後に到達した場合、最初から開始する部分でロジックを考え出すのに問題があります。

これは現在私が持っているものです。

$images = glob("images/*.jpg");

// sort images by file time
usort($images, function($a, $b) {
     return filemtime($a) < filemtime($b);
});

$images = array_slice($images, $start_pos, 3);

画像を 3 つのグループにスライスする$start_posには 0 になり、最初の呼び出しの後、3 まで上げて画像 4、5、6 を返します。しかし、現在、画像が 3 つ以上ない場合、3 を設定$start_posすると最初からやり直すのではなく、何も返されません。

4

2 に答える 2

1
if (count($images) > 3) {
    $start_pos += 3;
}
$images = array_slice($images, $start_pos, 3);
于 2013-09-06T22:55:26.443 に答える
0

モジュラスを使用して循環ループします。

$selectedImages=array();
$imageNum=0;
for($i=$start_pos%count($images);$imageNum<3;i=(i+1)%count($images),$imageNum++)
{
    $selectedImages[$imageNum]=$images[$i]
}
于 2013-09-06T23:01:05.260 に答える