Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何仅获取条件为真的数组的第一个实例_Php_Arrays_Wordpress_Conditional Statements - Fatal编程技术网

Php 如何仅获取条件为真的数组的第一个实例

Php 如何仅获取条件为真的数组的第一个实例,php,arrays,wordpress,conditional-statements,Php,Arrays,Wordpress,Conditional Statements,我是PHP新手,我正在尝试修改我的基于Wordpress的学习管理主题(称为Academy on ThemeForest),以便能够计算出用户在当前课程中所上的课程 换句话说,我想运行一个检查,查看用户已经完成了哪些课程,只获取课程层次结构中尚未完成的第一课的ID 以下是我所知道的一切: 在一篇文章(在本例中为“课程”)的循环中,我就是这样获得当前课程的课程数组的: <?php $lessons_array = ThemexCourse::sortLessons(ThemexCourse:

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

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

以下是我所知道的一切:

在一篇文章(在本例中为“课程”)的循环中,我就是这样获得当前课程的课程数组的:

<?php $lessons_array = ThemexCourse::sortLessons(ThemexCourse::$data['course']['lessons']); ?>
由于[ID]和[menu_order]这两个值是最重要的:它们告诉您每节课的ID及其在课程中的层次结构,所以我将其截断了一点

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

为了检查用户是否已完成课程,我一直使用以下方法:

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

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


提前感谢任何人的帮助

我认为应该这样做:

$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;

感谢您的及时回复,但这将在代码的第3行返回以下错误“不能使用WP_Post as array类型的对象”。
$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;