Php in_array()要求参数2为数组,给定整数
我想对每个活动的开始日期进行概述。因此,事件标题必须是唯一的。我的想法是创建一个helper函数,在这里我循环查询结果并检查每个项目的标题。为了确保每个标题只传递一次,我想将标题放入数组($checklist)。如果它不存在,我将该项添加到结果数组中。如果有,请继续下一项 我总是会出错:Php in_array()要求参数2为数组,给定整数,php,arrays,Php,Arrays,我想对每个活动的开始日期进行概述。因此,事件标题必须是唯一的。我的想法是创建一个helper函数,在这里我循环查询结果并检查每个项目的标题。为了确保每个标题只传递一次,我想将标题放入数组($checklist)。如果它不存在,我将该项添加到结果数组中。如果有,请继续下一项 我总是会出错: in_array() expects parameter 2 to be array, integer given 这是我的代码: function showFirstEvenst($collection)
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转换为数组,但没有结果
我需要更改什么?这是因为在循环中,您将
$checklist
赋值为array\u push()
,这将是数组中的新元素数
array\u将元素添加到数组后,push函数将返回数组的计数。所以不要将函数的输出分配给数组 替换
if (!in_array($title, $checklist)) {
$checklist = array_push($checklist, $title);
$result = array_push($result, $item);
}
与
添加到@Lawrence Cherone和@Ravinder Reddy的答案中,您可以使用本机数组语法推送到数组,而不是使用
array\u push
:
if (!in_array($title, $checklist)) {
$checklist[] = $title;
$result[] = $item;
}
返回一个整数,在循环中覆盖数组,为什么要使用
array\u push()
???只是$checklist[]=$title
@AbraCadaver是否性能更高?@bflydesign它不会有很大的区别,但是的,它应该有。在$array[]=$value
与array\u push($value,$array)
的性能方面发现了这个相关的问题:这确实是问题所在……我们并没有寻找它。事实上,array_push文档建议在添加一项时使用这种方法。
if (!in_array($title, $checklist)) {
$checklist[] = $title;
$result[] = $item;
}