我有這樣一多維陣列的多維數組:排序在PHP中使用的密鑰
[
{
"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
)等進行排序此我想到了我的寫作用foreach
s自己選擇排序方法,但我相信這不是一個很好的方法。我也可以使用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) { ... } } }}
上面漂亮的打印
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) {
...
}
}
}
}
不知道,我試過了,不能在第三級左右內取得。 –
我甚至不知道你是否需要使用multisort。你不會只是頂級陣列嗎?它應該按alpha排序頂級鍵。在這種情況下,結果將是A,C,F。除非原始問題的定義不夠,否則應該對數組進行適當的分類。 OP,是否希望對頂層進行排序,然後按狀態進行排序? – jkinz
@jkinz你的意思是ksort($ whateverArray)?由於某種原因,它不適用於我。雖然它確實應該。 –