使用foreach时按日期排序

时间:2014-01-19 16:59:18

标签: php sorting

我正在创建一个页面来列出表格中每行的选择列。我通过使用如下的foreach循环来实现它的基础,并且它工作正常。我现在面临的问题是,我需要按日期(其中一列)订购结果,最新记录位于顶部。

这是我到目前为止(有效但没有排序)

foreach ($visitors as $visitor) {
        $id = htmlentities($visitor['family_id']);
        $first_name = htmlentities($visitor['first_name']);
        $last_name = htmlentities($visitor['last_name']);
        $visit_date = htmlentities($visitor['visit_date']);
        $phone = htmlentities($visitor['phone']);
        $email = htmlentities($visitor['email']);
        ?>

        <p><?php echo $visit_date; ?><a href="visitor-view.php?id=<?php echo $id; ?>"> <?php echo $first_name . ' ' . $last_name; ?></a> <?php echo $phone; echo $email; ?></p>
        <?php
    } 

希望有人对如何进行排序有一个好主意。

2 个答案:

答案 0 :(得分:1)

使用USORT

(来自PHP的官方网站 - http://php.net/manual/en/function.usort.php

function date_compare($a, $b)
{
    $t1 = strtotime($a['visit_date']);
    $t2 = strtotime($b['visit_date']);
    return $t1 - $t2;
}    
usort($array, 'date_compare');

答案 1 :(得分:0)

我自己的愚蠢疏忽,试图让它变得更加复杂。

使用Dragon Warrior的建议是迄今为止最简单的方法。