foreach循环中未定义的偏移量

时间:2013-06-14 08:48:27

标签: php

我在我的网站上遇到了一个关于Foreach循环的噩梦。

我得到的错误是:

  

消息:未定义的偏移量:0

我想做的是理想地检查它们是否匹配当然&类别,如果他们没有显示手风琴。

我的数据输出如下....

  

阵   (       [0] => stdClass对象           (               [course_id] => 2               [course_title] =>成功或休息1开始您的业务               [course_description] =>成功或休息,开始您的业务。               [course_cost] => 35.99               [delivery_method_id] => 1               [subcategory_id] => 1               [course_duration] => 2小时               [course_level] =>中间               [date_added] => 2013-06-14 09:57:49               [date_edited] =>               [status] =>活性           )         )

但是我也得到一个空数组:

  

阵   (   )

我的代码如下:

<div class="row">
<div class="span12">


    <h1><span class="green"><?=$category_details[0]->category_title; ?></span></h1>

    <p><?=$category_details[0]->category_description; ?></p>

    <? if(empty($courses[0][0])) { ?>
    <p>Their are currently no courses in this category.</p>
    <? } else { ?>

    <p>Courses in <?=$category_details[0]->category_title; ?></p>

    <div class="accordion-content">
        <? foreach($subcategories as $subcategory) : ?>
            <h3><a href="#"><?=$subcategory->subcategory_title; ?></a></h3>
                <div>
                    <? foreach($courses as $course): ?>
                        <? if($course[0]->subcategory_id == $subcategory->subcategory_id) { ?>
                        <ul class="accordion-course">
                            <? foreach($course as $course): ?>
                            <li>
                                    <a href="<?=base_url(); ?>view-course/<?=$course->course_id; ?>" title="View Course - <?=$course->course_title; ?>">
                                        <?=$course->course_title; ?> - &pound; <?=$course->course_cost; ?>
                                    </a>
                                    <a class="course-btn pull-right" href="<?=base_url(); ?>view-course/<?=$course->course_id; ?>" title="View Course - <?=$course->course_title; ?>">
                                        View Course
                                    </a>
                            </li>
                            <? endforeach; ?>
                        </ul>
                        <? } ?>
                    <? endforeach; ?>
                </div>
        <? endforeach; ?>
    </div>

    <? } ?>

</div>
<?= $template['_partials']['user_navigation']; ?>

错误行的问题是:

<?  if($course[0]->subcategory_id == $subcategory->subcategory_id) { ?>

希望有人可以帮助我解决这个我发现自己陷入困境的噩梦。: - (

2 个答案:

答案 0 :(得分:3)

使用[0]循环时无需指定foreach。尝试

<?php if($course->subcategory_id == $subcategory->subcategory_id) { ?>

答案 1 :(得分:1)

这一行

if($course[0]->subcategory_id == $subcategory->subcategory_id) { ?>

您似乎正在尝试访问数组中的第一个元素,但您已经在循环并且不需要它

if($course->subcategory_id == $subcategory->subcategory_id) { ?>

另一方面,我认为你应该使用php长标签<?php .... ?>而不是短标签<?...?>