Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中按日期对多维数组排序_Php_Json_Multidimensional Array - Fatal编程技术网

在PHP中按日期对多维数组排序

在PHP中按日期对多维数组排序,php,json,multidimensional-array,Php,Json,Multidimensional Array,我想用PHP按日期对数组排序,然后用JSON输出。我的数组包含很多“帖子”。下面是当我对当前数组进行json_编码并将其作为json进行回显时它当前的显示方式。我想我可能必须使用usort(),但我不确定如何使用 我试过这个建议,但对我不起作用。请任何人帮忙。谢谢 { "post": [ { "title": "Title 1", "date": { "strdate": "2013-04-09", "day

我想用PHP按日期对数组排序,然后用JSON输出。我的数组包含很多“帖子”。下面是当我对当前数组进行json_编码并将其作为json进行回显时它当前的显示方式。我想我可能必须使用usort(),但我不确定如何使用

我试过这个建议,但对我不起作用。请任何人帮忙。谢谢

{
"post": [
    {
        "title": "Title 1",
        "date": {
            "strdate": "2013-04-09",
            "dayname": "Tue"
        }
    },
    {
        "title": "Title 2",
        "date": {
            "strdate": "2013-04-08",
            "dayname": "Mon"
        }
    }
]
}

我的PHP数组如下所示:

    <?php 

    Array
    (
        ["post"] => Array
            (
                [0] => Array
                    (
                        ["title"] =>   Title 
                        ["date"] => Array
                            (
                                ["strdate"] => 2013-04-09
                                ["month"] => 04
                                ["dayname"] => Tue
                            )

                    )

                [1] => Array
                    (
                        ["title"] =>   Title2 
                        ["date"] => Array
                            (
                                ["strdate"] => 2013-04-08
                                ["dayname"] => Mon
                            )

                    )

            )

    )

     ?>

函数mysort($a,$b)
{
return(strotime($b['timestamp'])-strotime($a['timestamp']);
}
//将第一个日期和时间转换为UNIX时间戳
$t1=mktime(2,30,0,7,1,2011);
$t2=mktime(3,30,0,7,1,2011);
$t3=mktime(4,30,0,7,1,2011);
//将数据存储到多维数组中
$testArray=数组(
“testing3”=>数组(“时间戳”=>t1美元,
“名称”=>“测试3”),
“测试”=>数组(“时间戳”=>t2美元,
“名称”=>“测试”),
“testing2”=>数组(“时间戳”=>t3美元,
“名称”=>“测试2”)
);
usort($testArray,'mysort');
回声“;
打印(测试阵列);
回声“
";
foreach($testArray作为$row){
$date=$row['timestamp'];
回显日期(“d/m/y:H:i:SA”,$date)。”
";
}
另见:


“在PHP中按日期对多功能数组排序”在链接的解决方案或其他无数类似解决方案中,有什么不适合您?@Aaron Lumsden发布您的数组。@bharanikumar我已经更新了,谢谢。从和@Juhana复制,我在谷歌上搜索并找到了最佳答案,所以我发布了答案。这是错误的,兄弟。我可以只发布链接作为答案。我已经编辑了答案作为一个例子。如果另一个Stackoverflow帖子回答了这个问题,不要将其作为新答案复制,而是将这个问题标记为重复关闭,或者在评论中给出链接。@Juhana谢谢兄弟,我以后会确保的。
usort($array['post'], function ($a, $b) {
    return strtotime($b['date']['strdate']) - strtotime($a['date']['strdate']);
});
function mysort($a, $b)
{
   return(strtotime($b['timestamp']) - strtotime($a['timestamp']));
}


// Convert first date & time to UNIX timestamp

$t1 = mktime(2, 30, 0, 7, 1, 2011);
$t2 = mktime(3, 30, 0, 7, 1, 2011);
$t3 = mktime(4, 30, 0, 7, 1, 2011);


// Store data to a Multidimensional Arrays
$testArray = array(
    "testing3" => array("timestamp" => $t1, 
                        "name" =>"testing3"),

    "testing" => array("timestamp" => $t2, 
                       "name" =>"testing"),

    "testing2" => array("timestamp" => $t3, 
                        "name" =>"testing2")
    );



usort($testArray, 'mysort');

echo "<pre>";
print_r($testArray);

echo "

";

foreach($testArray AS $row){

 $date = $row['timestamp'];
 echo date("d/m/y : H:i:s a",$date)."
";
}