我有这个多维数组,称为
$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
)
)
)
我怎样才能达到这个目标?非常感谢提前
试试这个:
ksort($rent);
foreach($rent as &$item) {
ksort($item['dates']);
}
您可以简单地对产品进行ksort,然后迭代它们并将其用于日期键。
ksort($products);
foreach($products as &$product)
ksort($product['dates']);
其中
$products
是您向我们展示的数组。请注意,您需要将 foreach 循环中的值作为引用传递(使用 &
运算符),否则更改将不会在原始数组中更新。
为了我对你的问题的理解; Nadh 解决方案已经差不多了。但我相信你想要 ksort()
这是我对 Nadh 答案的更正
ksort($rent);
foreach($rent as $product => $dates) {
ksort($rent[$product]['dates']);
}
print_r($rent);