array()期望参数2是数组,给定的整数
我想创建每个事件的第一个日期的概述。 所以事件标题必须是唯一的。 我的想法是创建一个辅助函数,在这里我循环查询结果并检查每个项目的标题。 为了确保每个标题只传递一次,我想将标题推入数组($ 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作为数组,但没有结果。
我需要改变什么?
array_push函数将元素添加到数组后将返回数组的计数。 所以不要将函数的输出分配给数组。
更换
if (!in_array($title, $checklist)) {
$checklist = array_push($checklist, $title);
$result = array_push($result, $item);
}
同
if (!in_array($title, $checklist)) {
array_push($checklist, $title);
array_push($result, $item);
}
添加@ Lawrence Cherone和@Ravinder Reddy的答案,而不是使用array_push
,你可以使用本地数组语法来推送数组:
if (!in_array($title, $checklist)) {
$checklist[] = $title;
$result[] = $item;
}
它的发生是因为在你的循环中你用$checklist
array_push()
的值赋值$checklist
,这将是数组中新的元素数目。
http://php.net/manual/en/function.array-push.php
链接地址: http://www.djcxy.com/p/59411.html