これは、私が現在使用しているコードの簡略化されたバージョンです。
$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_ROW1 行あたり最大数の画像をインラインで画面に出力します。
これに関する問題は、15 個の画像があり、それぞれのタイトルが画像の番号 (つまり、、、0.jpg... 1.jpg)14.jpgであるとしましょう。それらは文字列としての名前に基づいて順番に印刷されます。(つまり、、、、、、、、、... ) 。0.jpg_ 1.jpg_ 10.jpg_11.jpg12.jpg13.jpg14.jpg2.jpg
明らかに、私はそれらを番号順にしたいので、ソートアルゴリズムは避けられません (私は思います)。私は PHP が苦手なので、このファイルの場所の配列を文字列比較ではなく、数値順にソートする簡単な O(n^2) 方法があるかどうか疑問に思っていました。
助けてくれてありがとう。