CakePHP Set::extract родительский массив на основе состояния элемента

скажем, у меня есть такой массив:

        [Option] => Array
            (
                [0] => Array
                    (
                        [id] => 30606
                        [option_description_id] => 1
                        [product_id] => 101512
                        [price] => 0
                        [OptionDescription] => Array
                            (
                                [id] => 1
                                [option_type_id] => 1
                                [name] => Factory
                                [short_name] => 
                                [sort_order] => 1
                                [OptionType] => Array
                                    (
                                        [id] => 1
                                        [name] => Warranty
                                        [seo_url] => warranty
                                    )

                            )

                    )

                [1] => Array
                    (
                        [id] => 30607
                        [option_description_id] => 2
                        [product_id] => 101512
                        [price] => 44.99
                        [OptionDescription] => Array
                            (
                                [id] => 2
                                [option_type_id] => 1
                                [name] => +2 Year Extended
                                [short_name] => 
                                [sort_order] => 2
                                [OptionType] => Array
                                    (
                                        [id] => 1
                                        [name] => Warranty
                                        [seo_url] => warranty
                                    )

                            )

                    )

Я хочу извлечь вариант, чей идентификатор option_type_id OptionDescription равен 1.

Есть ли способ сделать это легко с помощью Set::extract?


person Rob    schedule 22.08.2011    source источник


Ответы (1)


Ну, конечно, через две минуты после того, как я отправил свой вопрос (после нескольких часов попыток разобраться в нем), я понял, насколько это просто.

Чтобы извлечь родительский элемент, вы используете /.. в синтаксисе пути.

Итак, моя строка для всех опций, у которых type_id равна 2, будет выглядеть так:

Set::extract('/Option/OptionDescription[option_type_id=2]/..', $product);
person Rob    schedule 22.08.2011