我有一个对象数组,我想检查其中是否有某个类名。所以我尝试了:
$all_classnames = array_filter($obj_array, 'get_class');
$found = in_array("classname_to_test", $all_classnames);
只是,$all_classnames 仍然保存原始对象数组而不是类名数组(通过 get_class)。我在这里错过了什么吗?
我有一个对象数组,我想检查其中是否有某个类名。所以我尝试了:
$all_classnames = array_filter($obj_array, 'get_class');
$found = in_array("classname_to_test", $all_classnames);
只是,$all_classnames 仍然保存原始对象数组而不是类名数组(通过 get_class)。我在这里错过了什么吗?
您想使用array_map
(根据回调函数转换输入数组)而不是array_filter
:
$all_classnames = array_map('get_class', $obj_array);
请注意,array_map
它的参数顺序与其他使用回调的数组函数相反,因为 PHP.
这不是array_filter函数的工作方式。如果回调返回它只会过滤您的数组false
,它将从数组中删除元素。
你需要的是array_map
$all_classnames = array_map('get_class', $obj_array);