我想使用 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){...}
这是我的错误消息:
未捕获类型错误:ksort():参数 #1 ($array) 必须是数组类型,给定 stdClass
ksort 适用于数组,不适用于对象。您需要传递
true
作为第二个参数来获取关联数组:
$array = json_decode($json, true);
ksort($array);
echo json_encode($array);
为了使用
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 形式返回结果。