如何在Magento中按字母顺序对类别列表数组进行排序

Joe*_*her 3 php magento

在Magento中,我使用下面的代码创建了一个phtml模板文件.我从本教程中得到了这个.我和其他人想知道如何按字母顺序对此类别列表进行排序.第一行代码创建一个带有Category ID的数组.再往下,我们可以使用foreach部分中的ID获取Category Name.但是要按名称排序,我们需要在foreach之前获取一个数组中的Names,然后按名称排序.怎么样?

<?php
$cats = Mage::getModel('catalog/category')->load(319)->getChildren();
$catIds = explode(',',$cats);
?>
<ul>
<?php foreach($catIds as $catId): ?>
    <li>
        <?php
            $category = Mage::getModel('catalog/category')->load($catId);
            echo '<a href="' . $category->getUrl() . '">';
            echo $category->getName() . '</a>';
        ?>
    </li>
<?php endforeach; ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

注意:319是我想要列出子类别的父类别的类别ID.另外,我不是说这是一个类别页面模板.我在CMS页面中插入一个块(该部分已经在工作).

Ant*_*n S 21

你可以打电话

Mage::getModel('catalog/category')->getCollection()->addFieldToFilter('parent_id', '319')->addAttributeToSort('name', 'ASC');
Run Code Online (Sandbox Code Playgroud)

你将立即整理整个束,休息只是典型的Varien系列的迭代.这是一个伪示例,我不知道parent_id是否是db中的实际字段名称,因此您可能会在得到正确的结果之前检查出来.

关于Magento收藏的精彩读物由Alan Storm撰写

  • 这是最好的答案. (3认同)

ale*_*lex 10

您可以先构建一个类别名称列表.

<?php
$cats = Mage::getModel('catalog/category')->load(319)->getChildren();
$catIds = explode(',',$cats);

$categories = array();
foreach($catIds as $catId) {
       $category = Mage::getModel('catalog/category')->load($catId); 
       $categories[$category->getName()] = $category->getUrl();
}

ksort($categories, SORT_STRING);
?>

<ul>
<?php foreach($categories as $name => $url): ?>
    <li>
    <a href="<?php echo $url; ?>"><?php echo $name; ?></a>
    </li>
<?php endforeach; ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

我在不太了解Magento的情况下编写了这个答案,只想快速找到有用的东西.Anton的答案更好,更有Magentic(?)