これは、私が現在使用しているコードの簡略化されたバージョンです。
$files = glob('*.{jpg,png,gif}', GLOB_BRACE);
$counter = 1;
echo '<div id="images">';
foreach($files as $file) {
if ($counter % $IMGS_PER_ROW == 1)
echo '<div>';
echo '<img src="' . $file . '"/>';
if ($counter % $IMGS_PER_ROW == 0)
echo '</div>';
$counter++;
}
echo '</div>';
これが行うことは、ディレクトリを検索することであり、見つかった各画像について、$IMGS_PER_ROW
1 行あたり最大数の画像をインラインで画面に出力します。
これに関する問題は、15 個の画像があり、それぞれのタイトルが画像の番号 (つまり、、、0.jpg
... 1.jpg
)14.jpg
であるとしましょう。それらは文字列としての名前に基づいて順番に印刷されます。(つまり、、、、、、、、、... ) 。0.jpg
_ 1.jpg
_ 10.jpg
_11.jpg
12.jpg
13.jpg
14.jpg
2.jpg
明らかに、私はそれらを番号順にしたいので、ソートアルゴリズムは避けられません (私は思います)。私は PHP が苦手なので、このファイルの場所の配列を文字列比較ではなく、数値順にソートする簡単な O(n^2) 方法があるかどうか疑問に思っていました。
助けてくれてありがとう。