PHP函数的变更顺序
我希望改变列表在我们的Magento购物车中集合的顺序 我们有以下编码:PHP函数的变更顺序,php,magento,Php,Magento,我希望改变列表在我们的Magento购物车中集合的顺序 我们有以下编码: public function getOptionList() { $options = false; if (Mage::getStoreConfig('SCP_options/cart/show_custom_options')) { $options = parent::getOptionList(); } if (Mage::getStoreConfig('SCP_
public function getOptionList()
{
$options = false;
if (Mage::getStoreConfig('SCP_options/cart/show_custom_options')) {
$options = parent::getOptionList();
}
if (Mage::getStoreConfig('SCP_options/cart/show_config_product_options')) {
if ($this->getConfigurableProductParentId()) {
$attributes = $this->getConfigurableProductParent()
->getTypeInstance()
->getUsedProductAttributes();
foreach($attributes as $attribute) {
$options[] = array(
'label' => $attribute->getFrontendLabel(),
'value' => $this->getProduct()->getAttributeText($attribute->getAttributeCode()),
'option_id' => $attribute->getId(),
);
}
}
}
return $options;
}
其中显示以下内容:
我们希望交换属性和选项,使属性显示在项目的顶部
在编码中,我们已经确定,顶部的if语句用于选项,底部的if语句用于属性,因此理论上,它应该只是一个交换它们的例子。。。不幸的是,它似乎没有那么简单
如果我们交换它们,属性不会显示,但选项会显示
有没有人能推荐一些可以尝试的东西,因为我们在尝试排序时感到非常沮丧。交换它们,然后在下半部分使用array\u merge。当您交换它们时,第二部分只是分配选项并删除属性部分。这将两者放在一起,而不是覆盖:
if (Mage::getStoreConfig('SCP_options/cart/show_custom_options')) {
$options = array_merge($options, parent::getOptionList();
}
在最初的示例中,
$options[]=array(…
行)是一个完整的重新分配。我很惊讶第一个IF子句对$output
的返回值有任何影响。这不是一个完整的重新分配。[]是向数组添加元素的快捷方式。