Многомерный массив-получить доступ к элементу в структуре

Как получить доступ к элементу’ type ‘ в следующей структуре?

В переменной $item (output from print_r($item);)

Cartthrob_item_product Object ( 
    [core:protected] => Cartthrob_core_ee Object ( 
        [cart] => Cartthrob_cart Object ( 
            [items:protected] => Array ( 
                [3] => Cartthrob_item_product Object ( 
                    [item_options:protected] => Array ( 
                        [type] => product  
                    )
                )
            )
        )
    )
)

1 ответ

  1. В зависимости от версии PHP и предполагая, что объекты имеют соответствующие геттеры, вы могли бы сделать:

    $item->getCore()->cart->getItems()[3]->getItemOptions()['type'];
    

    Если у них нет геттеров, вы можете получить доступ толькоCartthrob_item_product::coreCartthrob_cart::items, и Cartthrob_item_product::item_optionsизнутри самих соответствующих классов , потому что они есть protected.

    Другая возможность заключается в том, что индекс Cartthrob_item_productat 3 является тем же объектом, что и $item. В этом случае, предполагая, что объект имеет соответствующий геттер, вам просто нужно сделать:

    $item->getItemOptions()['type'];