如何从php数组中获取值

时间:2014-10-29 14:31:32

标签: php arrays magento

在print_r语句中获取后,我得到以下数组结构:
它来自Magento。任何人都可以建议我如何从这个数组中获取 customoptions_qty

Mage_Catalog_Model_Product_Option_Value Object
(

    [_origData:protected] => Array
        (
            [option_type_id] => 13
            [option_id] => 5
            [sku] => 
            [sort_order] => 0
            [customoptions_qty] => 55
            [default] => 0
            [in_group_id] => 262142
            [dependent_ids] => 263141
            [weight] => 0.0000
            [default_title] => Buy 3 Get 1
            [store_title] => 
            [title] => Buy 3 Get 1
            [default_option_type_price_id] => 13
            [default_price] => 300.0000
            [default_price_type] => percent
            [default_special_price] => 
            [default_special_comment] => 
            [store_option_type_price_id] => 
            [store_price] => 
            [store_price_type] => 
            [store_special_price] => 
            [store_special_comment] => 
            [option_type_price_id] => 13
            [price] => 300.0000
            [price_type] => percent
            [special_price] => 
            [special_comment] => 
        )



)

2 个答案:

答案 0 :(得分:1)

Magento为dataorigData数组中的所有值使用魔术调用者/ getter / setter。

每当您尝试获取 camelCased 属性名称的值时,魔术调用者将尝试使用 under_scoreifyed data数组中获取值>财产名称。

如果data数组中的值不是,则魔术调用者将尝试在origData数组中找到它。

$obj->getCustomoptionsQty();
$obj->getData('customoptions_qty');

如果您已为某个属性设置了新值,并希望获得原始值,则可以使用getOrigData

$obj->getOrigData('customoptions_qty');

答案 1 :(得分:0)

我们假设您打印的变量名为$_option 你可以这样得到customoptions_qty

$qty = $_option->getOrigData('customoptions_qty');

你可以像这样获得完整的数组

$origData = $_option->getOrigData();

我不确定你想要达到的目的,但你可能做错了。
magento中的_origData数组包含从db检索的对象的值 如果您修改了对象,则可能需要使用

 $qty = $_option->getData('customoptions_qty'); 

Magento对象看起来像这样

Class_Name Object
(
    [_data:protected] => Array
        ( 
           //some values here
        )

    [_origData:protected] => Array
        (
            //some values here
        )
)

当您从db获取对象值时,_data和_origData是相同的,但_data可以更改。