在磁条2

时间:2016-09-01 11:38:08

标签: php json magento2

我有一个集合对象

$di=array();

$products= $this->customerFactory->create()->getCollection()->addAttributeToSelect('*')->addFieldToFilter('entity_id','22');

foreach ($products as $key => $value)

 { # code...  }

我想知道如何遍历此集合并创建关联数组..如果结果有多行,如何循环它。

作为最终结果,我应该将数组作为

{key=>value, key1=>value1}

1 个答案:

答案 0 :(得分:2)

首先,getCollection()已经返回给定集合的元素数组及其所有属性(addAttributeToSelect('*')),因此您已经接收了一个对象数组而不是多维对象阵列。

在最简单的情况下,如果您需要一个包含所有具有所有属性的产品的JSON数组,它就会像这样简单:

$jsonArray= json_encode($products); // converts all elements into a JSON representation

如果您需要关联的元素数组而不是对象数组,请对对象进行类型转换:

$assocArray= array();
foreach ($products as $product) {
  $assocArray[]= (array) $product; // type-casting to array
}

如果你想迭代每个产品的每个属性(我不知道你为什么会这么想),这就是那个版本:

$assocArray= array();
foreach ($products as $product) {
  $rowArray= array();
  foreach ($product as $key => $val) {
    $rowArray[$key]= $val;
  }
  $assocArray[]= $rowArray;
}

希望能让您了解如何在Magento工作中使用集合。