我有这个多维数组,名为$rent
:
Array
(
[product2] => Array
(
[dates] => Array
(
[2013-07-25] => 2
[2013-07-23] => 1
[2013-07-21] => 3
)
)
[product3] => Array
(
[dates] => Array
(
[2013-07-24] => 5
[2013-07-22] => 4
[2013-07-20] => 3
)
)
[product1] => Array
(
[dates] => Array
(
[2013-07-29] => 1
[2013-07-28] => 2
[2013-07-27] => 2
)
)
)
我想做一个双重排序:
这样生成的数组将是:
Array
(
[product1] => Array
(
[dates] => Array
(
[2013-07-27] => 2
[2013-07-28] => 2
[2013-07-29] => 1
)
)
[product2] => Array
(
[dates] => Array
(
[2013-07-21] => 3
[2013-07-23] => 1
[2013-07-25] => 2
)
)
[product3] => Array
(
[dates] => Array
(
[2013-07-20] => 3
[2013-07-22] => 4
[2013-07-24] => 5
)
)
)
我怎样才能达到这个目标?非常感谢提前
答案 0 :(得分:1)
试试这个:
ksort($rent);
foreach($rent as &$item) {
ksort($item['dates']);
}
答案 1 :(得分:1)
您只需 ksort 产品,然后对其进行迭代并将其用于日期键。
ksort($products);
foreach($products as &$product)
ksort($product['dates']);
$products
是您向我们展示的数组。请注意,您需要将foreach循环中的值作为引用传递(使用&
运算符),否则更改将不会在原始数组中更新。
答案 2 :(得分:1)
了解你的问题; Nadh解决方案几乎就在那里。但我相信你想要ksort()
这是我对Nadh回答的更正
ksort($rent);
foreach($rent as $product => $dates) {
ksort($rent[$product]['dates']);
}
print_r($rent);