0
我已經瀏覽了有關在堆棧溢出中對PHP中的多維數組進行排序的所有答案,但沒有人直接回答了我的問題。在PHP中對多維數組進行高級排序
從我所瞭解,我應該使用無論是PHP usort
功能或PHP array_multisort
功能不同的答案,但我不知道如何將這些應用到我的非常具體的陣列結構:
這裏是我的可變$array
:
Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
[subarray] => Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => abcORDERBYTHIS
)
)
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
[subarray] => Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => ghiORDERBYTHIS
)
)
)
[2] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
[subarray] => Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => defORDERBYTHIS
)
)
)
)
我希望能夠將此陣列由最後陣列的field3
在subarray
排序。訪問此元素與PHP很容易end
功能,像這樣:
<?php
foreach($array as $array_single){
foreach(end($array_single['subarray']) as $sub_array){
echo $sub_array;
}
}
?>
,從現在起我被困在如何具體按字母順序排序此多維數組,使我們得到以下結果:
$array[0]
- 遺蹟之上,因爲field3
值abcORDERBYTHIS
$array[2]
- 跳轉到中間,因爲field3
值defORDERBYTHIS
$array[1]
- 在底部,現在是因爲field3
值是事先ghiORDERBYTHIS
謝謝!
這種高級陣列排序往往是DIY。 – 2013-02-14 17:25:46
哎喲@JasonMcCreary - 不是我想聽的! ;) – 2013-02-14 17:28:03
對不起。當PHP超過100個數組函數時,沒有銀彈。這並不是說組合可能無法爲你提供你想要的。 – 2013-02-14 17:43:46