通过从html中提取时间对php数组进行排序

通过从html中提取时间对php数组进行排序,php,html,arrays,sorting,Php,Html,Arrays,Sorting,我有一个数组,其中包含一些html作为值。在html中是日期。我想按这些日期对数组进行排序 数组看起来像: Array( [0] => '<div class="date">April 6, 2016</div>' [1] => '<div class="date">January 23, 2016</div>' [2] => '<div class="date">March 6, 2016&l

我有一个数组,其中包含一些html作为值。在html中是日期。我想按这些日期对数组进行排序

数组看起来像:

Array(
    [0] => '<div class="date">April 6, 2016</div>'
    [1] => '<div class="date">January 23, 2016</div>'
    [2] => '<div class="date">March 6, 2016</div>'
    [3] => '<div class="date">December 5, 2016</div>'
)

这将返回日期。可以使用strotime将其转换为unix。我只是想用它来比较一下…

你必须把时间转换成时间戳


然后创建一个新数组,使用时间戳作为键,html作为值。然后按键排序。

好的,大部分答案已经存在于

所以我不觉得太糟糕,只是在这里给了codez

哦,熟悉php.net,您将能够自己解决这些问题

function cmp($a, $b)
{
  $a=strtotime(strip_tags($a));
  $b=strtotime(strip_tags($b));
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
$date[]='<div class="date">April 6, 2016</div>';
$date[]='<div class="date">January 23, 2016</div>';
$date[]='<div class="date">March 6, 2016</div>';
$date[]='<div class="date">December 5, 2016</div>';

usort($date, "cmp");

var_export($date);
函数cmp($a,$b)
{
$a=strotime(strip_标签($a));
$b=标准时间(带标签($b));
如果($a=$b){
返回0;
}
回报率($a<$b)?-1:1;
}
$date[]=“2016年4月6日”;
$date[]=“2016年1月23日”;
$date[]=“2016年3月6日”;
$date[]=“2016年12月5日”;
usort(日期,“cmp”);
var_出口(日期);

您需要一些字符串操作strotime和一些正则表达式或子函数。在您的函数中,您可能会使用strip_tags()&strotime()来获取可以排序的数值。我编辑了这个问题。我可以得到日期,但我不知道如何使用它对数组进行排序:\n您不需要该函数,因为PHP内置了一个函数。是的,您可以使用
strotime()
转换为时间戳。您已经提到您了解
usort()
。所以使用它。如果您在执行此操作时遇到具体问题,请寻求更具体的帮助。我不想为您编写正确的函数,我已根据您的编辑回答了您的问题。请花时间写一条评论,让我了解您的想法。我想改进我的答案,即使它们不是op选择的答案。我的答案只是一个提示,如何在创建数组时使用时间戳作为数组键来实现想要的结果,这将使用php ksort函数将排序部分减少到一行。我原来的数组稍微复杂一些,但我会利用这个。谢谢,我喜欢这个答案。
function strip_sort_array($a){
    foreach ($a as $key => $value) {
        $date = substr($value, 18, 32);
    }
}
function cmp($a, $b)
{
  $a=strtotime(strip_tags($a));
  $b=strtotime(strip_tags($b));
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
$date[]='<div class="date">April 6, 2016</div>';
$date[]='<div class="date">January 23, 2016</div>';
$date[]='<div class="date">March 6, 2016</div>';
$date[]='<div class="date">December 5, 2016</div>';

usort($date, "cmp");

var_export($date);