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