2013-06-14 5 views
2

У меня кошмар с циклом Foreach на моем сайте.Неопределенное смещение в петле foreach

Ошибки я получаю:

Сообщения: Undefined смещения: 0

То, что я хотел бы сделать, это в идеале проверить их совпадение, конечно & категории, если их не показывает аккордеон.

Выход моего данных выглядит следующим образом ....

Массив ( [0] => StdClass Object ( [course_id] => 2 [COURSE_TITLE] => Make Or Перерыв 1 Начиная свой бизнес [course_description] => судьбоносный, начать свой бизнес. [course_cost] => 35.99 [delivery_method_id] => 1 [subcategory_id] => 1 [course_duration] => 2 часа [ course_lev эш] => Промежуточное [DATE_ADDED] => 2013-06-14 9:57:49 [date_edited] => [состояние] => активный ) )

Однако я также получаю сообщение об пустой массив:

массив ( )

Мой код выглядит следующим образом:

<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) { ?> 

Надежда кто-то может помочь мне по этому смещению кошмара я считаю себя в :-(

+3

только совет, вы не должны использовать сокращенное выражение ' Novocaine

+1

Что вы подразумеваете под '$ course [0] -> subcategory_id?' –

+0

Действительно ли $ course является массивом? Возможно, вы имеете в виду '$ course-> subcategory_id' –

ответ

3

Там нет необходимости указывать [0] когда вы используете цикл foreach. попробуйте

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

Эта линия

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

Похоже, вы пытаетесь получить доступ к первому элементу в массиве, но вы уже перекручивание, и это не нужно

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

Как стороне я не подумайте, что вы действительно должны использовать теги php long <?php .... ?> вместо коротких <?...?>

+0

Спасибо за это @Fabio. Я тоже начну использовать длинные теги. – StuBlackett

+1

@StuBlackett приветствую чувака. – Fabio

Смежные вопросы