如何对3D阵列进行排序?在这种情况下,我想在日期之后排序。谢谢?
array(2) {
["garsoniere"]=>array(2) {
[0]=> array(5) {
["date"]=> string(19) "2014-02-04"
["sponsored"]=> string(1) "0"
["offer_status"]=> string(6) "active"
["suprafata"]=> string(3) "111"
["confort"]=> string(2) "-1"
["title"]=> string(18) "Jimmy Humununukaua"
}
[1]=> array(5) {
["date"]=> string(19) "2013-03-25"
["sponsored"]=> string(1) "0"
["offer_status"]=> NUL
["suprafata"]=> string(2) "23"
["confort"]=> NULL
["title"]=> string(38) "Garsoniera de vanzare in Marasti, Cluj"
}
}
["apartamente"]=> array(2) {
[0]=> array(5) {
["date"]=> string(19) "2014-02-05"
["sponsored"]=> string(1) "0"
["offer_status"]=> string(6) "active"
["etaj"]=> string(2) "50"
["title"]=> string(15) "Test Apartament"
}
[1]=> array(5) {
["date"]=> string(19) "2014-02-04"
["sponsored"]=> string(1) "0"
["offer_status"]=> string(6) "active"
["etaj"]=> string(2) "50"
["title"]=> string(13) "dfasfsdffasdf"
}
}
}
我知道它看起来不对,但我希望结果看起来像这样:
["apartamente"][0][date]=>2014-02-05.....[title]
["apartamente"][1][date]=>2014-02-04.....[title]
["garsoniere"][0][date]=>2014-02-04.....[title]
["garsoniere"][1][date]=>2013-03-25.....[title]
任何人都可以帮我吗?
答案 0 :(得分:0)
请使用usort功能来实现此目的。请查看http://badarwaqas.blogspot.com/2013/04/php-sorting-array-on-nth-level-key.html文章
答案 1 :(得分:0)
使用usort
初始数组
Array
(
[giraffe] => Array
(
[date] => 2014-02-04
)
[zebra] => Array
(
[date] => 2012-02-04
)
[penguin] => Array
(
[date] => 2014-01-04
)
)
排序算法
usort($arr, function($a, $b) {
return ($a['date'] > $b['date'] ? 1 : ($a['date'] < $b['date'] ? -1 : 0));
});
分配后给出 -
Array
(
[0] => Array
(
[date] => 2012-02-04
)
[1] => Array
(
[date] => 2014-01-04
)
[2] => Array
(
[date] => 2014-02-04
)
)
答案 2 :(得分:0)
尝试
$result = array();
foreach($arr as $key=>$val){
foreach($val as $key1=>$val1){
$result[$key][$key1]= $val1;
}
}
ksort($result,SORT_NATURAL);
我不确定您在问题中指定的那种。 请参阅演示here