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