我有一个php文件,它在我的users目录中创建了一系列数组,然后将该数组发送回iPhone。
我的php正在创建的数组按字母顺序排序,我希望它按文件创建日期排序..
这是我的php文件的样子
<?php
$username = $_GET['username'];
$path = "$username/default/";
$files = glob("{$path}/{*.jpg,*.jpeg,*.png}", GLOB_BRACE);
// output to json
echo json_encode($files);
?>
我该怎么做?
谢谢:)
答案 0 :(得分:5)
将usort()
与回调调用filemtime()
...
这是未经测试的,但我相信它会让你走上正确的道路......
// First define a comparison function to be used as a callback
function filetime_callback($a, $b)
{
if (filemtime($a) === filemtime($b)) return 0;
return filemtime($a) < filemtime($b) ? -1 : 1;
}
// Then sort with usort()
usort($files, "filetime_callback");
这应该将它们排在最前面。如果您希望它们是最新的,请在回调<
三元操作中将>
更改为return
。
答案 1 :(得分:0)
正如Michael Berkowski所说,使用usort()
是可行的方法,但如果这是一次性排序(即您只需要在代码中以这种方式对数组进行排序),则可以使用匿名函数:
usort($files, function ($a, $b){
if (filemtime($a) === filemtime($b)) return 0;
return filemtime($a) < filemtime($b) ? -1 : 1;
});
虽然没有必要,但它确实保存了一个函数调用。
如果您需要多次以这种方式对文件进行排序,最好创建一个单独的命名函数。