Php 在磁电机2中循环通过集合时创建关联数组
我有一个收集对象Php 在磁电机2中循环通过集合时创建关联数组,php,json,magento2,Php,Json,Magento2,我有一个收集对象 $di=array(); $products= $this->customerFactory->create()->getCollection()->addAttributeToSelect('*')->addFieldToFilter('entity_id','22'); foreach ($products as $key => $value) { # code... } 我想知道如何循环这个集合并创建关联数组。如果结果有多行
$di=array();
$products= $this->customerFactory->create()->getCollection()->addAttributeToSelect('*')->addFieldToFilter('entity_id','22');
foreach ($products as $key => $value)
{ # code... }
我想知道如何循环这个集合并创建关联数组。如果结果有多行,如何循环它
作为最终结果,我应该得到如下数组
{key=>value, key1=>value1}
首先,
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中使用集合。您希望创建一个JSON对象作为结果(即
{key1:value1,key2:value2}
),还是需要一个PHP数组?如果第二个选项合适,请从您的问题中删除JSON标记$jsonArray=json_encode($products),.foreach($products as$product)工作得非常好。我可以在项目中继续解释这个问题。但是使用键和值的循环正在返回emphty数组。但是我的问题解决了。谢谢。这个解释对magento初学者更有用