0

我有一个对象数组,我想检查其中是否有某个类名。所以我尝试了:

$all_classnames = array_filter($obj_array, 'get_class');
$found = in_array("classname_to_test", $all_classnames);

只是,$all_classnames 仍然保存原始对象数组而不是类名数组(通过 get_class)。我在这里错过了什么吗?

4

2 回答 2

2

您想使用array_map(根据回调函数转换输入数组)而不是array_filter

$all_classnames = array_map('get_class', $obj_array);

请注意,array_map它的参数顺序与其他使用回调的数组函数相反,因为 PHP.

于 2013-08-13T09:03:23.917 回答
1

这不是array_filter函数的工作方式。如果回调返回它只会过滤您的数组false,它将从数组中删除元素。

你需要的是array_map

$all_classnames = array_map('get_class', $obj_array);
于 2013-08-13T09:06:23.837 回答