按修改日期排序该数组?

发布于 2024-12-12 22:05:50 字数 363 浏览 1 评论 0原文

我有一个 php 文件,它在我的用户目录中创建一个包含所有内容的数组,然后该数组被发送回 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);

?>

我该怎么做?

谢谢 :)

I have a php file that is creating a array of everything in my users directory, the array is then being sent back to a iPhone.

The array that my php is creating is ordering them alphabetically, i want it to sort by the date the file was created..

Here is what my php file looks like

<?php
$username = $_GET['username'];
$path = "$username/default/";


$files = glob("{$path}/{*.jpg,*.jpeg,*.png}", GLOB_BRACE);

// output to json
echo json_encode($files);

?>

How would i do this?

Thanks :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小帐篷 2024-12-19 22:05:51

usort() 与调用 < 的回调一起使用code>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 三元运算中将 < 更改为 >

Using usort() with a callback which calls filemtime()...

This is untested, but I believe it will set you on the correct path...

// 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");

This should sort them oldest-first. If you want them newest-first, change < to > in the callback return ternary operation.

愁杀 2024-12-19 22:05:51

正如 Michael Berkowski 提到的,使用 usort() 是一种可行的方法,但如果这是一次性排序(即您只需在代码中以这种方式对数组进行一次排序),您可以使用匿名函数:

usort($files, function ($a, $b){
    if (filemtime($a) === filemtime($b)) return 0;
    return filemtime($a) < filemtime($b) ? -1 : 1; 
});

虽然不是必需的,但它确实节省了函数调用。

如果您需要多次以这种方式对文件进行排序,最好创建一个单独的命名函数。

As Michael Berkowski mentioned, using usort() is the way to go, but if this is a one-off sorting (i.e. you only need to sort an array this way once in your code), you can use an anonymous function:

usort($files, function ($a, $b){
    if (filemtime($a) === filemtime($b)) return 0;
    return filemtime($a) < filemtime($b) ? -1 : 1; 
});

While not necessary, it does save a function call.

If you need to sort files this way more than once, creating a separate named function is preferable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文