我有一个用户数组,我希望最终得到一个数组,其中用户名或全名包含某个字符($char
)。我的数组看起来像这样:
Array
(
[0] => Array
(
[User] => Array
(
[id] => 36
[username] => JohnS
[fullname] => John Smith
)
)
[1] => Array
(
[User] => Array
(
[id] => 137
[username] => Tim
[fullname] => Tim Wilson
)
)
)
然而,当我运行这个数组过滤器时 - 无论$ char是什么值,我最终得到一个空$ result数组 -
$result = array_filter($users, 'matches');
function matches($var){
return stripos($var["User"]["username"].$var["User"]["fullname"], $char) !== false;
}
任何想法??!
由于
答案 0 :(得分:1)
$char
函数中的matches
未定义。 (如果它是全局变量,则必须先添加global $char;
。)
或者如下所示:
$result = array_filter($users, function ($var) use ($char) {
return stripos($var["User"]["username"].$var["User"]["fullname"], $char) !== false;
});