php - 需要帮助在 PHP 中使用时间戳对数组进行排序

标签 php arrays sorting timestamp

在发布此内容之前,我已经做了相当多的研究,现在我需要在正确的方向上提供帮助。我有一个 ip 摄像机文件名列表。文件名是我需要排序的时间戳本身。我不知道如何对字符串名称上的日期进行排序。我想我需要将字符串转换为函数 strtotime() 的可读格式?或者有没有不改变字符串的方法?我不知道如何正确解决这个问题。

我已经尝试过array_multisort($array, SORT_DESC, SORT_NUMERIC);没有运气。

$array = Array ( 'SNAP_CH04_2016_05_15_18_11_05_62777.jpg', 'SNAP_CH01_2016_05_15_18_05_38_63588.jpg', 'SNAP_CH02_2016_05_15_18_05_13_38387.jpg', 'SNAP_CH04_2016_05_15_15_55_28_52502.jpg',  'SNAP_CH04_2016_05_15_14_52_46_26039.jpg',  'SNAP_CH03_2016_05_15_14_52_39_18421.jpg',  'SNAP_CH04_2016_05_15_14_51_34_19005.jpg', 'SNAP_CH02_2016_05_15_14_51_25_9874.jpg', 'SNAP_CH04_2016_05_15_06_12_49_23707.jpg', 'SNAP_CH04_2016_05_15_05_03_09_38176.jpg',  'SNAP_CH04_2016_05_15_03_33_27_29791.jpg', 'SNAP_CH03_2016_05_15_01_59_29_27941.jpg' );

如有任何建议,我们将不胜感激。正在努力学习。

最佳答案

您可以使用usort函数来定义一个自定义函数来比较字符串。以下是它的工作原理:

<?php

function timestamp_cmp($a, $b) {
    $first = substr($a, 10);
    $second = substr($b, 10);
    return strnatcmp($first, $second);
} 
$array = Array ( 
    'SNAP_CH04_2016_05_15_18_11_05_62777.jpg', 
    'SNAP_CH01_2016_05_15_18_05_38_63588.jpg', 
    'SNAP_CH02_2016_05_15_18_05_13_38387.jpg', 
    'SNAP_CH04_2016_05_15_15_55_28_52502.jpg',  
    'SNAP_CH04_2016_05_15_14_52_46_26039.jpg',  
    'SNAP_CH03_2016_05_15_14_52_39_18421.jpg',  
    'SNAP_CH04_2016_05_15_14_51_34_19005.jpg', 
    'SNAP_CH02_2016_05_15_14_51_25_9874.jpg', 
    'SNAP_CH04_2016_05_15_06_12_49_23707.jpg', 
    'SNAP_CH04_2016_05_15_05_03_09_38176.jpg',  
    'SNAP_CH04_2016_05_15_03_33_27_29791.jpg', 
    'SNAP_CH03_2016_05_15_01_59_29_27941.jpg' 
);

usort($array,'timestamp_cmp');

注意:如果您使用的是 PHP 5.3+,您可以执行以下操作:

usort($array,function($a, $b) {
    $first = substr($a, 10);
    $second = substr($b, 10);
    return strnatcmp($first, $second);
});

关于php - 需要帮助在 PHP 中使用时间戳对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37265424/

相关文章:

php - 我如何获取 Twitter 用户社区的最新推文提要,

python - NumPy 的 python : Sorting columns of an array in alphabetical order

Java ArrayList 按相同顺序对两个列表进行排序

c++ - 我如何对没有复制构造函数的对象使用 std::sort?

php - ID匹配的MySQL查询或在另一个表中有引用

PHP:MY​​SQL 数组到 JSON 停止重复?

c++ - 指向结构数组属性的数组指针

javascript - 通过分组 camelCase 属性创建对象

php - PHP session 有哪些风险?

C++ 气泡数组赋值 - 添加标记以显示变化