我已经将数组转换为JSON,如下所示:
[
{
"name": "Sally",
"nick_name": "sal",
"availability": "0",
"is_fav": "0"
},
{
"name": "David",
"nick_name": "dav07",
"availability": "0",
"is_fav": "1"
},
{
"name": "Zen",
"nick_name": "zen",
"availability": "1",
"is_fav": "0"
},
{
"name": "Jackson",
"nick_name": "jack",
"availability": "1",
"is_fav": "1"
},
{
"name": "Rohit",
"nick_name": "rod",
"availability": "0",
"is_fav": "0"
},
]
我想根据的值按以下顺序整个数组进行排序is_fav
,availability
以及nick_name
:
[ is_fav:1 availability:1 ]
[ is_fav:1 availability:0 ]
[ is_fav:0 availability:1 ]
[ is_fav:0 availability:0 ]
在这些条件中的每一个条件下,元素都按字母顺序使用 nick_name
因此,上面示例中的最终数组看起来像
[
{
"name": "Jackson",
"nick_name": "jack",
"availability": "1",
"is_fav": "1"
},
{
"name": "David",
"nick_name": "dav07",
"availability": "0",
"is_fav": "1"
},
{
"name": "Zen",
"nick_name": "zen",
"availability": "1",
"is_fav": "0"
},
{
"name": "Rohit",
"nick_name": "rod",
"availability": "0",
"is_fav": "0"
},
{
"name": "Sally",
"nick_name": "sal",
"availability": "0",
"is_fav": "0"
},
]
试试这个array_multisort
$arr = json_decode($data, true);
// Obtain a list of columns
foreach ($arr as $key => $row) {
$isFav[$key] = $row['is_fav'];
$avail[$key] = $row['availability'];
$names[$key] = $row['nick_name'];
}
// Sort the data with isFav descending, avail descending
// Add $arr as the last parameter, to sort by the common key
array_multisort($isFav, SORT_DESC, $avail, SORT_DESC, $names, SORT_ASC, $arr);
您可以在此处查看它的运行情况(3v4l.org)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句