2

自分のサイトで Foreach ループの悪夢に見舞われています。

私が得ているエラーは次のとおりです。

メッセージ: 未定義のオフセット: 0

私がやりたいことは、理想的には、それらがコースとカテゴリの一致であることを確認することです。それらがアコーディオンを表示していない場合。

私のデータの出力は次のとおりです....

Array ( [0] => stdClass Object ( [course_id] => 2 [course_title] => Make or Break 1 ビジネスの開始 [course_description] => Make or Break, Starting your business. [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] => active ) )

ただし、空の配列も取得しています:

配列 ( )

私のコードは次のとおりです。

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

誰かが私が見つけたこのオフセットの悪夢で私を助けてくれることを願っています. :-(

4

2 に答える 2

3

ループ[0]を使用する場合は指定する必要はありません。foreach試す

<?php if($course->subcategory_id == $subcategory->subcategory_id) { ?>
于 2013-06-14T08:54:42.173 に答える
1

この行

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

配列の最初の要素にアクセスしようとしているようですが、すでにループしており、必要ありません

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

<?php .... ?>サイドではありませんが、短いタグではなくphpの長いタグを実際に使用する必要があると思います<?...?>

于 2013-06-14T08:55:12.067 に答える