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

上一篇: array() expects parameter 2 to be array, integer given

下一篇: PHP While loop with last record?