2014-01-14 88 views
0

在Magento的单一产品视图页面我使用foreach循环与echo()功能如何添加逗号foreach循环

<?php $categories = $_product->getCategoryIds(); ?> 
<?php foreach($categories as $k => $_category_id): ?> 
    <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
     <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a> 
<?php endforeach; ?> 

但是当一个产品是显示当前产品的类别名称(S)分配给多个类别的结果是类别名称类别名称类别名称格式不正确。除了最后一个类别之外,是否有任何方法可以通过使用implode()函数来添加逗号(例如:类别名称,类别名称,类别名称)?

回答

0

试试这个。没有内疚。只要检查你是否已经打印了第一类。如果是这样,则在每个其他类别之前添加一个逗号。

<?php $categories = $_product->getCategoryIds(); ?> 
<?php $firstSet = false;?> 
<?php foreach($categories as $k => $_category_id): ?> 
    <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
    <?php if ($firstSet):?>, <?php endif;?><a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a> 
    <?php $firstSet = true;?> 
<?php endforeach; ?> 
+0

你的建议的工作。有什么方法可以删除类别名称和逗号(,)之间的空格吗?例如**类别名称,类别名称**到**类别名称,类别名称** –

+0

@KevinS。是。查看我的更新。只是将if语句移动到与'a'元素相同的行上。 – Marius

+0

我曾试过,但由于某种原因,它不工作。可能是在Magento中做的事。这里是我的最终代码'<?php $ categories = $ _product-> getCategoryIds(); ?><?php $ firstSet = false;?><?php foreach($ categories as $ k => $ _category_id):?><?php $ _category = Mage :: getModel('catalog/category') - > load ($ _category_id)?><?php if($ firstSet):?>,<?php endif;?>getName() ?><?php $ firstSet = true;?><?php endforeach; ?>' –

0

这很简单。因为你得到的类别名称,请试试这个:

<?php echo $_category->getName().", "; ?> 
0
<?php $categories = $_product->getCategoryIds(); ?> 
<?php foreach($categories as $k => $_category_id): ?> 
<?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
    <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName()."," ?> 

</a> 
<?php endforeach; ?> 

Note : concatenate , using . 
0
<?php 
    $categories = $_product->getCategoryIds(); 
    foreach($categories as $k => $_category_id){ 
     $_category = Mage::getModel('catalog/category')->load($_category_id); 
     $category_str = '<a href="' . $_category->getUrl() . '">' . $_category->getName() . '</a>, '; 
    } 
?> 

<?php echo trim($category_str, ', ') ?>