Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使此代码更短更好_Php_Magento_Magento 1.9 - Fatal编程技术网

Php 如何使此代码更短更好

Php 如何使此代码更短更好,php,magento,magento-1.9,Php,Magento,Magento 1.9,如何清理和改进以下“零碎”php代码: <?php error_reporting(E_ALL); require_once('app/Mage.php'); Mage::init(); Mage::getSingleton("core/session", array("name" => "frontend")); $productList = array( array(), array(), array() ); $count = Mage::getSin

如何清理和改进以下“零碎”php代码:

<?php

error_reporting(E_ALL);
require_once('app/Mage.php');
Mage::init();
Mage::getSingleton("core/session", array("name" => "frontend"));
$productList = array(
    array(),
    array(),
    array()
);
$count = Mage::getSingleton('checkout/session')->getQuote()->getItemsQty();
$cart = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
$name = array();
$qty = array();
$price = array();
for ($i = 0; $i < $count; $i++) {
    $name[$i] = $cart[$i]->getProduct()->getName();
    $qty[$i] = $cart[$i]->getQty();
    $price[$i] = $cart[$i]->getProduct()->getPrice();
    $productList[$i] = array(
        $name[$i],
        $qty[$i],
        $price[$i]
    );
}
print_r($productList);
使用下面的代码

<?php
error_reporting(E_ALL);
require_once('app/Mage.php');
Mage::init();

Mage::getSingleton("core/session", array("name" => "frontend"));
$productList = array();

$quote = Mage::getSingleton('checkout/session')->getQuote();

foreach ($quote->getAllItems() as $item) {
    $productList[]=array($item->getName(),$item->getQty(),$item->getPrice());
}

我想这种方法更好一些

<?php
error_reporting(E_ALL);
require_once("app/Mage.php");

function setData($acc, $item)
{
    $acc[] = [
    $item->getProduct()->getName(),
    $item->getQty(),
    $item->getProduct()->getPrice()
];
return $acc;
}

Mage::init();
Mage::getSingleton("core/session", ["name" => "frontend"]);
print_r(array_reduce(Mage::getSingleton("checkout/session")->getQuote()
->getAllVisibleItems(), "setData", []));

这属于。您的代码不符合我的需要。因为我想从第三方shell脚本收集上面提到的产品属性。也不是来自magento模块。
ini_set('display_errors', '1');
require_once('app/Mage.php');
Mage::app('default');
$storeId = 0;
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load($storeId));

$products = Mage::getModel('catalog/product')
            ->getCollection()
            ->addAttributeToSelect('*')

foreach ($products as $product) {   

        print_r($product->getdata());

        }