首页 > 解决方案 > array_push() 期望参数 1 是数组,int 给定

问题描述

我得到 array_push() 期望参数一是一个数组,有什么解决方案吗?

$activeCourses = array();
foreach ($allCourses as $course) {
   if (strtotime($course->end_date) > time()) {
       $activeCourses = array_push($activeCourses, $course);
   }
}

标签: phparrayslaravel

解决方案


您第一次将变量作为数组引用。但是当您将它用于数组推送时,$activeCourses = 它会变成一个整数字段,因为 array_push 返回一个整数值,然后当涉及到下一次迭代中的下一个数组推送时,您的activeCourses变量不再是一个数组。所以像这样使用

$activeCourses = array();
foreach ($allCourses as $course) {
   if (strtotime($course->end_date) > time()) {
       array_push($activeCourses, $course);
   }
}

或者

$activeCourses = array();
foreach ($allCourses as $course) {
   if (strtotime($course->end_date) > time()) {
       $activeCourses[] = $course;
   }
}

推荐阅读