【发布时间】:2015-10-30 05:07:10
【问题描述】:
数组
array (
[0] => array
(
[field1] => 'name'
[field2] => 'text'
[field3] => array
(
[0] => array
(
[text] => 'This arrays order is to be kept!'
[name] => 'Only sort the sub-sub-array below!'
[order] => ''
)
)
)
[1] => array
(
[field1] => 'name'
[field2] => 'text'
[field3] => array
(
[0] => array
(
[text] => '2014'
[name] => 'Dummy!'
[order] => '1'
)
[1] => array
(
[text] => '2013'
[name] => 'Try me!'
[order] => '2'
)
[2] => array
(
[text] => '1985'
[name] => 'Help!'
[order] => '5'
)
[3] => array
(
[text] => '2002'
[name] => 'Please!'
[order] => '4'
)
[4] => array
(
[text] => '2007'
[name] => 'Order!'
[order] => '3'
)
)
)
...
目标
我想保留第 1 级和第 2 级数组及其值。我需要按order-字段中的值对第二个子子数组中的键进行排序。因此,在它表示年份的地方,该子子数组应该按 ASC 或 DESC 排序。并且所有其他键/值/结构/映射应保持原样。
排序数组:
array (
[0] => array
(
[field1] => 'name'
[field2] => 'text'
[field3] => array
(
[0] => array
(
[text] => 'This arrays order is to be kept!'
[name] => 'Only sort the sub-sub-array below!'
[order] => ''
)
)
)
[1] => array
(
[field1] => 'name'
[field2] => 'text'
[field3] => array
(
[0] => array
(
[text] => '2014'
[name] => 'Dummy!'
[order] => '1'
)
[1] => array
(
[text] => '2013'
[name] => 'Try me!'
[order] => '2'
)
[2] => array
(
[text] => '2007'
[name] => 'Order!'
[order] => '3'
)
[3] => array
(
[text] => '2002'
[name] => 'Please!'
[order] => '4'
)
[4] => array
(
[text] => '1985'
[name] => 'Help!'
[order] => '5'
)
)
)
帮助
我花了好几个小时尝试不同的自定义解决方案,主要基于usort(),但我也知道这些问答都没有描述我所遇到的情况。
我开始怀疑这是否可能。 有谁知道是不是?如果是这样,您能否提供一些启发或提供提示/教程/示例以进行演示?
Laravel 5.1
我正在从 Laravel 模型中检索它并使用 toArray();
有没有更好的方法在 Laravel 中实现这一点,我很高兴知道。
【问题讨论】:
-
请发布数组排序后的样子。这样我就可以理解您想要实现的目标。
标签: php arrays sorting multidimensional-array laravel-5