如何遍历对象数组并从特定对象获取值?

时间:2020-09-02 11:31:48

标签: php arrays loops object

基本上,我有array中的objects已成功转储。我试图弄清楚如何从集合[options]的{​​{1}}对象中获取值并将它们存储在数组中

objects

我试图做一个foreach来遍历每个对象,但是我偶然发现了一个错误。

array(4) {
  ["size"]=>
  object(WC_Product_Attribute)#2724 (1) {
    ["data":protected]=>
    array(6) {
      ["id"]=>
      int(0)
      ["name"]=>
      string(4) "Size"
      ["options"]=>
      array(3) {
        [0]=>
        string(6) "400 ml"
        [1]=>
        string(2) "1L"
        [2]=>
        string(2) "2L"
      }
      ["position"]=>
      int(0)
      ["visible"]=>
      bool(true)
      ["variation"]=>
      bool(false)
    }
  }
  ["fruit"]=>
  object(WC_Product_Attribute)#2723 (1) {
    ["data":protected]=>
    array(6) {
      ["id"]=>
      int(0)
      ["name"]=>
      string(5) "Fruit"
      ["options"]=>
      array(8) {
        [0]=>
        string(17) "100% Orange Juice"
        [1]=>
        string(5) "Apple"
        [2]=>
        string(4) "Pear"
        [3]=>
        string(9) "Pineapple"
        [4]=>
        string(12) "Passionfruit"
        [5]=>
        string(15) "Red Dragonfruit"
        [6]=>
        string(13) "Baobab Powder"
        [7]=>
        string(17) "Grapeseed Extract"
      }
      ["position"]=>
      int(1)
      ["visible"]=>
      bool(true)
      ["variation"]=>
      bool(false)
    }
  }
  ["good-source-of-vit-c"]=>
  object(WC_Product_Attribute)#2722 (1) {
    ["data":protected]=>
    array(6) {
      ["id"]=>
      int(0)
      ["name"]=>
      string(20) "Good Source of Vit C"
      ["options"]=>
      array(1) {
        [0]=>
        string(3) "Yes"
      }
      ["position"]=>
      int(2)
      ["visible"]=>
      bool(true)
      ["variation"]=>
      bool(false)
    }
  }
  ["fiber"]=>
  object(WC_Product_Attribute)#2721 (1) {
    ["data":protected]=>
    array(6) {
      ["id"]=>
      int(0)
      ["name"]=>
      string(5) "Fiber"
      ["options"]=>
      array(1) {
        [0]=>
        string(3) "Yes"
      }
      ["position"]=>
      int(3)
      ["visible"]=>
      bool(true)
      ["variation"]=>
      bool(false)
    }
  }
}

我的目标是从foreach ($productsArray as $i => $value) { echo $value->options; } 对象中获取所有值,并将它们存储在要使用的数组中。

1 个答案:

答案 0 :(得分:2)

据我所知,您正在遍历WC_Product_Attribute对象的数组,这是WooCommerce使用的标志,不是吗?

在这种情况下,可以使用getter方法从Product Attribute获取选项:

foreach ($productsArray as $i => $value) {
    var_dump( $value->get_options() );
}

更多in the docs