微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 获取json并使用多个参数排序

好吧,我的问题很复杂.

我有那个json文件

{
"books": [
    {
        "book": [
            {
                "Title": "Java How to Program",
                "Author": "Deitel & Deitel",
                "Edition": "2007"
            }
        ]
    },
    {
        "book": [
            {
                "Title": "Patterns of Enterprise Application Architecture",
                "Author": "Martin Fowler",
                "Edition": "2002"
            }
        ]
    },
    {
        "book": [
            {
                "Title": "Head First Design Patterns",
                "Author": "Elisabeth Freeman",
                "Edition": "2004"
            }
        ]
    },
    {
        "book": [
            {
                "Title": "Internet & World Wide Web: How to Program",
                "Author": "Deitel & Deitel",
                "Edition": "2007"
            }
        ]
    }
]

}

在我的PHP我有这个:

    $file = file_get_contents('books.json');
    $json = json_decode($file, true);

我如何按多个规则对数组进行排序?例如:

echo sort_my_array('Title', ASC, 'Author', DESC, $json);

我尝试了很多方法,但我认为我的错误是在我尝试使用array_multidimensional时.

有人可以向我解释如何创建这个吗?

提前致谢

解决方法:

试试这个

    $file = file_get_contents('books.json');
    $json = json_decode($file, true);
   $json = array_map(function($a) { return $a['book'][0]; }, $json['books']);
 foreach ($json as $key => $row) {
    $title[$key] = $row['Title'];
   $author[$key] = $row['Author'];
 }
 array_multisort($title, SORT_ASC,  $author, SORT_DESC, $json);
 echo "<pre>";
 print_r($json);
 echo "</pre>";

我已经尝试过它的工作了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐