【发布时间】:2017-11-14 07:49:48
【问题描述】:
我想创建每个事件的第一个日期的概述。所以事件标题必须是唯一的。我的想法是创建一个辅助函数,在其中循环查询结果并检查每个项目的标题。为了确保每个标题只通过一次,我想将标题推入一个数组($checklist)。如果它不存在,我将该项目添加到结果数组中。如果是,请继续下一项。
我总是得到错误:
in_array() expects parameter 2 to be array, integer given
这是我的代码:
function showFirstEvenst($collection) {
$checklist = array();
$result = array();
foreach ($collection as $item) {
$title = strtolower($item['events']['title']);
if (!in_array($title, $checklist)) {
$checklist = array_push($checklist, $title);
$result = array_push($result, $item);
}
}
return $result;
}
我已经尝试在 foreach 循环中将 $checklist 和 $result 转换为数组,但没有结果。
我需要改变什么?
【问题讨论】:
-
php.net/manual/en/function.array-push.php 返回一个整数,然后你在循环中覆盖你的数组
-
为什么要使用
array_push()???就$checklist[] = $title; -
@AbraCadaver 性能更好吗?
-
@bflydesign 不会有很大的不同,但是是的,应该会的。
-
发现这个与
$array[] = $value与array_push($value, $array)的性能相关的问题:stackoverflow.com/questions/559844/…