Php dosya sıralama

3 Cevap

Ben aşağıdaki kod ile sıralı bir dosya listesini alabilirsiniz:

$log_files = scandir(LLP_LOG_DIR);
$sorted = sort($log_files);

dosya formatı X ilerici bir sayısal değer X.log vardır.

Nasıl alma sorunu çözebilir

0.log
1.log
10.log
11.log
2.log
3.log

İstenen sonuç olduğu

0.log
1.log
2.log
3.log
[..]
9.log
10.log
11.log
[..]

Ben şerit olabilir, dize ". Log" vb bunları sıralamak, ancak en etkili yolu nedir?

3 Cevap

yerine natsort deneyin

natsort($log_files)

sort to SORT_NUMERIC sayısal tasnif sahip ikinci parametresini ayarlayın:

$sorted = $log_files;
sort($sorted, SORT_NUMERIC);

Ve sort ilk parametre ile verilen değişkenin diziyi sıralar unutmayın. Dönüş değeri sort sadece bir boolean değerdir.

Yerine natcasesort deneyin.

natcasesort($array);

natsort harf duyarlı olduğundan.