我有一个多维数组,如:
[
{
"C":[
{
"status":"0",
"num":"3223"
},
{
"status":"1",
"num":"45186"
},
{
"status":"2",
"num":"8310"
},
{
"status":"3",
"num":"82"
}
]
},
{
"F":[
{
"status":"0",
"num":"1506"
},
{
"status":"1",
"num":"31253"
},
{
"status":"2",
"num":"1660"
},
{
"status":"5",
"num":"1017"
}
]
},
{
"A":[
{
"status":"0",
"num":"1506"
},
{
"status":"1",
"num":"31253"
},
{
"status":"2",
"num":"1660"
},
{
"status":"5",
"num":"1017"
}
]
},
]
我想根据键(C
,F
,A
)等对此进行排序。我考虑使用{{1}编写自己的选择排序方法} s,但我相信这不是一个很好的方法。我也可以使用foreach
,ksort()
,但不确定如何。
我不需要任何人为我编写整个代码,我将非常感谢有关如何对这样的数组进行排序的最佳方法的指导。
上面的字符串实际上是数组的usort()
转储。
以下是json_encode()
:
var_dump()
以上的漂亮照片
array(6) { [0] => array(1) { 'C' => array(8) { [0] => array(2) { ... } [1] => array(2) { ... } [2] => array(2) { ... } [3] => array(2) { ... } [4] => array(2) { ... } [5] => array(2) { ... } [6] => array(2) { ... } [7] => array(2) { ... } } } [1] => array(1) { 'F' => array(8) { [0] => array(2) { ... } [1] => array(2) { ... } [2] => array(2) { ... } [3] => array(2) { ... } [4] => array(2) { ... } [5] => array(2) { ... } [6] => array(2) { ... } [7] => array(2) { ... } } } [2] => array(1) { 'A' => array(8) { [0] => array(2) { ... } [1] => array(2) { ... } [2] => array(2) { ... } [3] => array(2) { ... } [4] => array(2) { ... } [5] => array(2) { ... } [6] => array(2) { ... } [7] => array(2) { ... } } } [3] => array(1) { 'D' => array(8) { [0] => array(2) { ... } [1] => array(2) { ... } [2] => array(2) { ... } [3] => array(2) { ... } [4] => array(2) { ... } [5] => array(2) { ... } [6] => array(2) { ... } [7] => array(2) { ... } } } [4] => array(1) { 'E' => array(8) { [0] => array(2) { ... } [1] => array(2) { ... } [2] => array(2) { ... } [3] => array(2) { ... } [4] => array(2) { ... } [5] => array(2) { ... } [6] => array(2) { ... } [7] => array(2) { ... } } } [5] => array(1) { 'B' => array(8) { [0] => array(2) { ... } [1] => array(2) { ... } [2] => array(2) { ... } [3] => array(2) { ... } [4] => array(2) { ... } [5] => array(2) { ... } [6] => array(2) { ... } [7] => array(2) { ... } } }}
答案 0 :(得分:1)
以下是我如何实现这一目标。可能有更好的方法,但我们需要在内存中创建一个新的数组,使用alpha字符作为实际键(基本上我们正在删除我们不需要的父数组)。然后我们使用ksort实际排序数组。
<?php
$test = array(
array("a" => array("status" =>1, "blah" => 2)),
array("f" => array("status" =>1, "blah" => 2)),
array("c" => array("status" =>1, "blah" => 2)),
array("b" => array("status" =>1, "blah" => 2)),
array("z" => array("status" =>1, "blah" => 2))
);
foreach($test as $key=>$val){
foreach($val as $key2=>$val2){
$newTest[$key2] = $val2;
}
}
echo '<pre>';
var_dump($test);
ksort($newTest);
var_dump($newTest);
echo '</pre>';
?>