无法在PHP中使用Foreach循环数组

时间:2013-10-21 11:09:16

标签: php arrays foreach

我无法从阵列创建foreach请求数据。

从Magento请求名称,URL和图像的示例:

<?php
$cat_id = array(268, 269, 270, 271, 272, 273, 274, 275, 276);
$helper     = Mage::helper('catalog/category');
?>
<div class="main">
<?php foreach ($cat_id as $id):?>
    <div class="category">
       <a href="<?php echo $helper->getCategoryUrl($id); ?>">
        <img src="<?php echo $helper->getThumbnailUrl($id); ?>" title="<?php echo $helper->getName($id); ?>"/>
        <div class="text"><h2><?php echo $helper->getName($id); ?></h2></div>
       </a>
    </div>
<?php endforeach; ?>
</div>

问题是,我什么都不知道,没有错误,我真的很感激,如果有人能告诉我什么是错的?

Vladimir Boliev提供的解决方案:

<?php
$cat_id = array(268, 269, 270, 271, 272, 273, 274, 275, 276);
?>
 <div class="main">
 <?php foreach ($cat_id as $id):?>
 <?php  $cur_category = Mage::getModel('catalog/category')->load($id); 
        $url = $cur_category->getUrl();
        $name = $cur_category->getName();
        $img = $cur_category->getThumbnailUrl();
 ?>
   <div class="category">
       <a href="<?php echo $url; ?>">
        <img src="<?php echo $img; ?>" title="<?php echo $name; ?>"/>
        <div class="text"><h2><?php $name; ?></h2></div>
       </a>
    </div>
 <?php endforeach; ?>
 </div>

3 个答案:

答案 0 :(得分:1)

你的数组和foreach很好,$ helper对象有问题。 试试这段代码:

<?php
$cat_id = array(268, 269, 270, 271, 272, 273, 274, 275, 276);
?>
 <div class="main">
 <?php foreach ($cat_id as $id):?>
   <div class="category">
       <a href="<?php echo $id; ?>">
        <img src="<?php echo $id; ?>" title="<?php echo $id; ?>"/>
        <div class="text"><h2><?php $id; ?></h2></div>
       </a>
    </div>
 <?php endforeach; ?>
 </div>

答案 1 :(得分:0)

您的foreach代码没有任何问题。

我认为可能会发生的是,您正在设置的ID在此对象上不存在 $ helper

所以,我建议你看看这个对象中是否有东西。使用

var_dump($helper);

看看发生了什么。

答案 2 :(得分:0)

<?php foreach ($cat_id as $id):?>
    <div class="category">
       <a href="<?php echo $helper->getCategoryUrl($id); ?>">
        <img src="<?php echo $helper->getThumbnailUrl($id); ?>" title="<?php echo $helper->getName($id); ?>"/>
        <div class="text"><h2><?php echo $helper->getName($id); ?></h2></div>
       </a>
    </div>
<?php endforeach; ?>

<?php foreach ($cat_id as $id){?>
    <div class="category">
       <a href="<?php echo $helper->getCategoryUrl($id); ?>">
        <img src="<?php echo $helper->getThumbnailUrl($id); ?>" title="<?php echo $helper->getName($id); ?>"/>
        <div class="text"><h2><?php echo $helper->getName($id); ?></h2></div>
       </a>
    </div>
<?php } ?>