PHPでファイル一覧を表示させますプログラムを作成していまして、こちらのサイトさん
https://www.saaria.info/archives/1111
を丸々コピーして、以下のように表示させますことは出来ました。
ー担当者1
+20210217-100557_顧客名
+20210217-101136_顧客名
+担当者2
+担当者3
ここで、フォルダ名に日付をつけて管理しているのですが、現在、日付の古いフォルダが
上に表示されております。
これを、日付の新しいフォルダを上に表示させたいのですが、プログラム中の変数を
array_reverseで反転させてみましても上手く動いてくれません。
プログラムのどこをどのようにいじれば良いのか教えて頂きたいと思います。
No.5ベストアンサー
- 回答日時:
こちらで確認したソースです。
このようになってますか。このサイトはインデントが崩れるので、下記URLにアップしました。
$path = '/???/???/???/';はあなたの環境に合わせて適切に設定してください。
https://ideone.com/xZd85r
No.4
- 回答日時:
rsort($dir_sort);の行を、以下の行で置き換えます。
$dir_sortが空でない場合、
0番目の要素の先頭8文字が数字なら、降順でソートします。
そうでないなら、昇順でソートします。
---------------------------------------------------
if (count($dir_sort) > 0){
if (preg_match('/^\d{8}/',$dir_sort[0]) == 1){
rsort($dir_sort,SORT_STRING);
}else{
sort($dir_sort,SORT_STRING);
}
}
ありがとうございます。
ちょこっと動きませんでしたので、if文とif文の間に
if (count($dir_sort) > 0){
var_dump($dir_sort[0]);
if (preg_match('/^\d{8}/',$dir_sort[0]) == 1){
としましたら、
string(1) "." string(1) "." …文字数の関係で省略…
としまして、下のif文でパターンマッチ出来ませんでしたです…
No.3
- 回答日時:
フォルダを全て無条件に降順にソートした場合は、そうなります。
現在、
+担当者1
+担当者2
+担当者3
となっているのは、たまたまかと思います。
こちらは、昇順にソートをしたほうが良いかと思います。
+20210217-101136_顧客名
+20210217-100557_顧客名
のソートですが、
$dir_sort の先頭の要素を取り出して、先頭8文字が数字であれば、
降順ソートするようにしてはいかがでしょうか。
(もっと厳密にしたいなら先頭8文字が数字、次がハイフン、次が数字6文字)
ありがとうございます。
親フォルダ(担当者1~3)は昇順にして(現在たまたま昇順と同じ表示)
その子フォルダ(20210217-xxxxxx)は降順って難しそうですが
何とかなりそうですかね。
No.1
- 回答日時:
array_reverseは配列の中身を反転させるだけなので全然使い方違います。
readdir()はファイルシステムに格納されている順に読み込むので、読み込んだファイル名は常に特定ルールによってソートされたものとは限りません。
下記を参考に、状況に合わせてsort、rsrot、array_multisortあたりを使ってください。
https://www.sejuku.net/blog/51222
https://kido0617.github.io/php/2013-01-06-file-s …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(IT・Webサービス) サイト上のフォルダ階層一覧、ファイル一覧を閲覧する方法は? 1 2022/11/11 15:49
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) excel 別のフォルダから列コピーする方法 8 2022/12/17 16:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
GridViewで列のソートを無効に...
-
小さい順
-
ソート機能付きの成績表プログラム
-
DataGridViewの昇順降順。
-
構造体配列のソート
-
n番目に大きい数を求めるアル...
-
Excelですべての組合せ(重複組...
-
Excel VBAで並べ替えをしたい
-
Fortran77で多次元配列を並び替...
-
C言語・要素除去
-
部分和問題がわかりません。
-
VB.NETでファイル名順にファイ...
-
ListViewについて
-
リスト構造のソートで悩んでま...
-
配列の中身を入れ替える方法を...
-
2次元配列を複数項目でソートし...
-
10個の整数を入力して小さい順...
-
C言語でアナグラムを求めるプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C言語・要素除去
-
C# DataGridView のヘッダーセ...
-
Excelですべての組合せ(重複組...
-
VBA基本構文の作り方 2列の...
-
なぜ?counterintuitive
-
ファイル名「1.jpg ~10.jpg~...
-
リスト構造のソートで悩んでま...
-
配列の問題
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
excel VBA の条件をつけての列...
-
10個の整数を入力して小さい順...
-
文字列をソートする方法
-
excel VBA リストビューの行...
-
DataGridViewの複数列を連動し...
-
2次元配列を複数項目でソートし...
-
csvファイル内にてソートす...
-
n番目に大きい数を求めるアル...
おすすめ情報
質問本文に書きましたサイトさんの
while (false !== ($file = readdir($handle)))
を、
while (false !== ($file = readdir($handle))) {
$dir_sort[] = $file ;
}
rsort($dir_sort);
foreach ( $dir_sort as $file )
としまして、$dir_sortという配列を作りましたところ、
ー担当者1
+20210217-101136_顧客名
+20210217-100557_顧客名
と、期待通りに逆順ソートされてくれました。
しかし、
+担当者3
+担当者2
+担当者1
としまして、担当者名まで逆順ソートされてしまいました。(残念)
この辺りご存じでしょうか?