PHP对象数组-尝试提取密钥

PHP对象数组-尝试提取密钥,php,arrays,woocommerce,Php,Arrays,Woocommerce,我得到一个商业订单的产品元数据如下 $item_meta_data = $item_values->get_meta_data(); foreach($item_meta_data as $meta_data_item) { echo $meta_data_item['key']; } 这给了我以下 WC_Meta_Data Object ( [current_data:protected] => Array ( [id]

我得到一个商业订单的产品元数据如下

$item_meta_data = $item_values->get_meta_data();
foreach($item_meta_data as $meta_data_item) {
    echo $meta_data_item['key'];
}
这给了我以下

WC_Meta_Data Object
(
    [current_data:protected] => Array
        (
            [id] => 8795
            [key] => Option 1
            [value] => Yes
        )

    [data:protected] => Array
        (
            [id] => 8795
            [key] => Option 1
            [value] => Yes
        )

)
我对返回的数据感到困惑,我想检查是否设置了选项1,我已经尝试像这样获取密钥

$item_meta_data = $item_values->get_meta_data();
foreach($item_meta_data as $meta_data_item) {
    echo $meta_data_item['key'];
}

但这不起作用,因为它不是数组,有人有什么想法吗?

您可以使用
$item\u meta\u data->get\u data()访问所有数据
或一个带有
$item\u meta\u data->id
$item\u meta\u data->key
$item\u meta\u data->value
的特定项在
WC\u meta\u data
名为
\u get
的类中有一种神奇的方法

因此,您可以访问受保护的属性。例如:

$item_meta_data->key

也许考虑使用您尝试过的方法,也许首先使用<代码>(数组)$ITMESMETAYODATABASE < /COD>或<代码>(对象)$ITMESMETAYATODATABASE <代码>?我已经查看了可用的方法,但不能使它按照我的意愿去做。也许是我对文件缺乏了解。将有一个进一步的读数,给我一个错误。。。调用上的成员函数get_data()array@fightstarr20同样的事情也发生在我身上。这是因为数组中有一个元素。因此,在这种情况下,
$item\u meta\u data[0]->key
会起作用,-但您可能应该稍微重构一下代码(因为
$item\u meta\u data
是item\u meta\u数据的数组)。