0

と呼ばれるこの多次元配列があります$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
                )

        )

)

ダブルソートをしたい:

  1. まず、productX の昇順で
  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
                )

        )

)

どうすればこれに到達できますか?よろしくお願いします

4

3 に答える 3

1

あなたの問題を理解するために; Nadh ソリューションはほぼそこにあります。しかし、私はあなたがksort()を望んでいると信じています

これはナドの答えに対する私の修正です

ksort($rent);

foreach($rent as $product => $dates) {
    ksort($rent[$product]['dates']);
}

print_r($rent);
于 2013-07-18T10:38:01.037 に答える
1

これを試して:

ksort($rent);
foreach($rent as &$item) {
    ksort($item['dates']);
}
于 2013-07-18T10:27:34.407 に答える