2

適切なドキュメントがないため、「Set::nest」CakePhp関数を理解するのが困難です。

誰かが一般的に、そして私の例でそれを適切に使用する方法を説明できれば幸いです。

私がこの木を持っているとしましょう:

array(
    (0) => array(
        'Category' => array('name' => 'Cat 1'),
        'Course' => array(
            'name' => 'Course 1'
        ),
        'Day' => array('date' => '2012-01-01')
    ),
    (1) => array(
        'Category' => array('name' => 'Cat 1'),
        'Course' => array(
            'name' => 'Course 1'
        ),
        'Day' => array('date' => '2012-01-02')
    ),
    (2) => array(
        'Category' => array('name' => 'Cat 1'),
        'Course' => array(
            'name' => 'Course 3'
        ),
        'Day' => array('date' => '2012-01-06')
    ),
    (3) => array(
        'Category' => array('name' => 'Cat 2'),
        'Course' => array(
            'name' => 'Course 2'
        ),
        'Day' => array('date' => '2012-01-02')
    ),
)

に変換される:

array(
    'Cat 1' => array(
        'Course' => array(
            'name' => 'Course 1'
        ),
        'Day' => array(
            array('date' => '2012-01-01'),
            array('date' => '2012-01-02')
        ),
        'Course' => array(
            'name' => 'Course 3'
        ),
        'Day' => array(
            array('date' => '2012-01-06')
        ),
    ),
    'Cat 2' => array(
        'Courses' => array(
            'name' => 'Course 2'
        ),
        'Day' => array(
            array('date' => '2012-01-03')
        )
    ),
)

ご覧のとおり、「Category」には複数の「Course」行を含めることができ、「Course」には複数の「Day」を含めることができるため、一種の二重ネストです。

私はそれをループして手動で行うことができます。

したがって、最初の質問は、これをSet :: nestで変換できますか?はいの場合はどのように変換できますか?

4

1 に答える 1

0

あなたが求めていることは不可能です。配列が無効です。各カテゴリがネストされた配列になるようにフォーマットを変更する必要があります'cat' => array(array('course 1' => ...), array('course 2' => ...))

print_r(array(
    'Cat 1' => array(
        'Course' => array(
            'name' => 'Course 1'
        ),
        'Day' => array(
            array('date' => '2012-01-01'),
            array('date' => '2012-01-02')
        ),
        'Course' => array(
            'name' => 'Course 3'
        ),
        'Day' => array(
            array('date' => '2012-01-06')
        ),
    ),
    'Cat 2' => array(
        'Courses' => array(
            'name' => 'Course 2'
        ),
        'Day' => array(
            array('date' => '2012-01-03')
        )
    ),
));

出力:

Array
(
    [Cat 1] => Array
        (
            [Course] => Array
                (
                    [name] => Course 3
                )

            [Day] => Array
                (
                    [0] => Array
                        (
                            [date] => 2012-01-06
                        )

                )

        )

    [Cat 2] => Array
        (
            [Courses] => Array
                (
                    [name] => Course 2
                )

            [Day] => Array
                (
                    [0] => Array
                        (
                            [date] => 2012-01-03
                        )

                )

        )

)
于 2012-10-10T18:37:30.290 に答える