はい、、、昔の過ちを繰り返しハマりました・・・(´・ω・`)
これ
$array = array('img_2.jpg', 'IMG_12.jpg', 'img_1.jpg');
sort($array);
print_r($array);
結果
Array
(
[1] => IMG_12.jpg
[2] => img_1.jpg
[0] => img_2.jpg
)
で、ググって
$array = array('img_2.jpg', 'IMG_12.jpg', 'img_1.jpg');
sort($array
, SORT_NUMBER);
print_r($array);
みたいに変えてもうまくいかず・・・(´・ω・`)ガッカリ…
んで、更にググり
http://kudox.jp/php/array-sortここに辿り着きました
んで、
$array = array('img_2.jpg', 'IMG_12.jpg', 'img_1.jpg');
natcasesort($array);
print_r($array);
こんな感じに修正
結果
Array
(
[2] => img_1.jpg
[0] => img_2.jpg
[1] => IMG_12.jpg
)
イェ━━━━━ヽ( ゚Д゚)人(゚Д゚ )ノ━━━━━━イ!!
このnatcasesort関数は、引数で渡された配列の要素を大文字小文字を区別せずに自然順アルゴリズムでソートしてくれるようで、用は連番のファイル名などを人間的な解釈でソートしてくれるみたい
詳しくは、kudox.jp様のブログをご覧くだせい!
http://kudox.jp/php/array-sort最終的にはこんな感じで使ってます
$array = array('img_2.jpg', 'IMG_12.jpg', 'img_1.jpg');
natcasesort($array);
$array =
array_values($array);
print_r($array);
結果
Array
(
[0] => img_1.jpg
[1] => img_2.jpg
[2] => IMG_12.jpg
)
natcasesortはキーを維持しちゃうみたいなので、array_valuesで振りなおしちゃうわけですな