Isih Fail mengikut Tarikh Terakhir Diubah Suai menggunakan glob()
Apabila bekerja dengan sistem fail, selalunya wajar untuk menyusun fail berdasarkan atributnya , seperti masa pengubahsuaian mereka. Dalam PHP, fungsi glob() boleh digunakan untuk mendapatkan semula tatasusunan fail, tetapi secara lalai, ia tidak mengekalkan susunan fail.
Cabaran: Isih mengikut Tarikh Pengubahsuaian
Andaikan anda mempunyai tatasusunan fail yang diperoleh menggunakan glob(), dan anda ingin mengisih tatasusunan ini berdasarkan cap tarikh masa terakhir yang diubah suai bagi setiap fail. Menggulung tatasusunan dan menyusunnya secara manual ke dalam tatasusunan yang berasingan ialah pilihan yang berdaya maju, tetapi ini bukan pendekatan yang paling cekap atau mudah.
Penyelesaian: Menggunakan create_function()
Sebelum PHP 7.2, fungsi create_function() menyediakan cara untuk mentakrifkan fungsi tanpa nama. Ia boleh digunakan bersama usort() untuk membandingkan masa pengubahsuaian fail dan mengisih tatasusunan dengan sewajarnya:
usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));
Dalam kod ini, create_function() mentakrifkan fungsi tanpa nama yang menolak masa pengubahsuaian fail pertama ($a) daripada fail kedua ($b). Hasil penolakan ini menunjukkan susunan kronologinya. usort() kemudian menggunakan fungsi ini untuk mengisih $myarray dalam tertib menaik berdasarkan masa pengubahsuaian.
Pemansuhan create_function()
Malangnya, create_function() telah ditamatkan dalam PHP 7.2 dan dialih keluar dalam PHP 8.0. Ini bermakna kod di atas tidak akan berfungsi lagi dalam versi moden PHP.
Penyelesaian Alternatif
Penyelesaian alternatif untuk mengisih fail mengikut tarikh terakhir diubah suai menggunakan glob() sertakan :
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Fail yang Diambil dengan Fungsi glob() PHP mengikut Tarikh Terakhir Diubah Suainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!