我需要一个帮助。我需要按照键值对json数组进行排序,并使用php调整大小。我在下面解释我的代码。
$skillArr=array(array("type"=>1,"name"=>"aaa"),array("type"=>2,"name"=>"bbb"),array("type"=>1,"name"=>"ccc"),array("type"=>3,"name"=>"ddd"),array("type"=>2,"name"=>"eee"),array("type"=>1,"name"=>"fff"));
echo json_encode($skillArr);
?>
上面的数组给出了以下输出。
[{"type":1,"name":"aaa"},{"type":2,"name":"bbb"},{"type":1,"name":"ccc"},{"type":3,"name":"ddd"},{"type":2,"name":"eee"},{"type":1,"name":"fff"}]
在这里,我需要按照type value
对此数组进行排序。我的预期输出如下。
[{"type1":[{"type":1,"name":"aaa"},{"type":1,"name":"ccc"},{"type":1,"name":"ff"}],"type2":[{"type":2,"name":"bbb"},{"type":2,"name":"eee"}],"type3":[{"type":3,"name":"ddd"}]}]
排序后输出数组应如上所示。请帮帮我。
答案 0 :(得分:2)
您可以使用usort对数组进行排序。
$skillArr=array(array("type"=>1,"name"=>"aaa"),array("type"=>2,"name"=>"bbb"),array("type"=>1,"name"=>"ccc"),array("type"=>3,"name"=>"ddd"),array("type"=>2,"name"=>"eee"),array("type"=>1,"name"=>"fff"));
usort($skillArr, function($a, $b){return $a['type'] - $b['type'];});
echo json_encode($skillArr);