[英]PHP array_filter with get_class filter
我有一個對象數組,我想檢查其中是否有某個類名。 所以我嘗試了:
$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);
請注意,與使用PHP的其他使用回調的數組函數相比, array_map
的參數采用相反的順序。
這不是array_filter函數的工作方式。 它僅過濾數組,如果回調返回false
,它將從數組中刪除該元素。
您需要的是array_map
$all_classnames = array_map('get_class', $obj_array);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.