按键对数组进行排序

问题描述 投票:0回答:3

我想使用 PHP 按字母顺序对单行 JSON 数据进行排序。所以最后:

{"one":"morning","two":"afternoon","three":"evening","four":"night"}

变成:

{"four":"night","one":"morning","three":"evening","two":"afternoon"}

我尝试使用

ksort
但无济于事:

$icons = json_decode(file_get_contents("icons.json"));
ksort($icons);
foreach($icons as $icon => $code){...}
php sorting
3个回答
11
投票

ksort 适用于数组,不适用于字符串:

$array = json_decode($json, true);
ksort($array);
echo json_encode($array);  

2
投票

为了使用

ksort
,您首先必须使用以下方法将 json 转换为 PHP 数组:

// The 2nd argument (true) specifies that it needs to be converted into a PHP array
$array = json_decode($your_json, true);

然后在该数组上应用 ksort

最后再次

json_encode
以 json 形式返回结果。


-1
投票

这边走:

var dataArr = [];
for (value in oldData) {
    var tmp = oldData[key];
    dataArr.push(parseInt(key)tmp});
}

dataArr.sort(function(a, b){
    if (a.word < b.word) return -1;
    if (b.word < a.word) return 1;
    return 0;
});

现在在 dataArr 中,您已经排序了数据

© www.soinside.com 2019 - 2024. All rights reserved.