我在我的网站上遇到了一个关于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; ?> - £ <?=$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) { ?>
希望有人可以帮助我解决这个我发现自己陷入困境的噩梦。: - (
答案 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 .... ?>
而不是短标签<?...?>