调用函数
$Products = Products::find()->where(['in', 'ChildId', $Query1])->
orWhere(['in', 'ChildId', $Query2]);
功能:
$user->setError("h", "h", "error");
$user->setError("h2", "h", "error");`
由于某种原因,它不断添加到阵列,我不知道我做错了什么。
提前致谢
答案 0 :(得分:0)
每次函数调用它都会将新值存储到$ _SESSION ['messages'] []中,如果您不想添加值,则必须在插入新值之前清除(清空)数组。 public function setError($ title,$ msg,$ type){ $ _SESSION ['messages'] = array(); 。 。 }
答案 1 :(得分:0)
array_search
适用于单维数组,使其适用于您需要在array_column
函数中使用array_search
的多维数组。 array_colum
将有两个要搜索的参数数组和列名。
在您的情况下,代码如下:
public function setError($title, $msg, $type) {
if(!isset($_SESSION['messages'])) {
$_SESSION['messages'][] = array("title" => $title, "message" => $msg, "type" => $type);
} else {
$key = array_search($title, array_column($_SESSION['messages'], 'title'));
if($_SESSION['messages'][$key]['title'] !== $title)
$_SESSION['messages'][] = array("title" => $title, "message" => $msg, "type" => $type);
}
}