如何只获取一个条件的第一个实例

时间:2013-08-13 07:57:17

标签: php arrays wordpress conditional-statements

我是PHP的新手,我正在尝试修改基于Wordpress的学习管理主题(在ThemeForest上称为Academy),以便能够确定用户所在的当前课程中的哪一课。

换句话说,我想检查用户已完成哪些课程,只获取课程层次结构中尚未完成的第一课的ID。

以下是我所知道的一切:

在单个帖子的循环中(在本例中为“课程”),这就是我获取当前课程数组的方法:

<?php $lessons_array = ThemexCourse::sortLessons(ThemexCourse::$data['course']['lessons']); ?>

这会产生这个嵌套数组:

Array ( [0] => WP_Post Object ([ID] => 117 [menu_order]=>1) [1] => WP_Post Object ([ID] => 124 [menu_order]=>2) [2] => WP_Post Object ([ID] => 156 [menu_order]=>3))

我已经截断了一点,因为两个值[ID]和[menu_order]是最重要的:它们会告诉你每节课的ID及其在课程中的层次结构。

但这就是我陷入困境的地方:我不想获得所有课程ID,只是用户尚未完成的课程。

为了检查用户是否完成了课程,我一直在使用它:

<?php if(ThemexCourse::isCompletedLesson($lesson_ID)) { echo 'Completed'; } ?>

因此,使用上述信息,是否可以仅返回下一个不完整课程的单个ID?

感谢任何人提前帮助您!

1 个答案:

答案 0 :(得分:0)

我认为应该这样做:

$next_lesson = NULL;
foreach($lessons_array as $index=>$lesson) {
   if(!ThemexCourse::isCompletedLesson($lesson->ID)) {
       $next_lesson = $lesson;
       break;
   }
}

echo "Next lesson is: " . $next_lesson->ID;