首页 > 解决方案 > 如何遍历对象数组并从特定对象中获取值?

问题描述

基本上我有一个我已经设法转储的东西arrayobjects我试图弄清楚如何[options]从集合中获取对象的值objects并将它们存储在数组中

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 循环遍历每个对象,但我偶然发现了一个错误。

foreach ($productsArray as $i => $value) {
    echo $value->options;
}

我的目标是从[options]对象中获取所有值,将它们存储在要使用的数组中。

标签: phparraysloopsobject

解决方案


从我所见,您正在迭代一组WC_Product_Attribute对象,这是 WooCommerce 使用的标志,不是吗?

在这种情况下,有一个 getter 方法可用于从产品属性中获取选项:

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

更多在文档中


推荐阅读