我有一个集合对象
$di=array();
$products= $this->customerFactory->create()->getCollection()->addAttributeToSelect('*')->addFieldToFilter('entity_id','22');
foreach ($products as $key => $value)
{ # code... }
我想知道如何遍历此集合并创建关联数组..如果结果有多行,如何循环它。
作为最终结果,我应该将数组作为
{key=>value, key1=>value1}
答案 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工作中使用集合。