Php函数使用字符串搜索对象数组
我试图想出一个代码来搜索对象数组中的字符串,如果找到字符串,则获取子菜单对象的值。例如,如果找到字符串“main/dashboard”,则获取子菜单Php函数使用字符串搜索对象数组,php,arrays,laravel,Php,Arrays,Laravel,我试图想出一个代码来搜索对象数组中的字符串,如果找到字符串,则获取子菜单对象的值。例如,如果找到字符串“main/dashboard”,则获取子菜单 stdClass Object ( [type] => single [slug] => view_admin_dashboard [menus] => stdClass Object ( [label] => Dashboard [icon] => dashboard
stdClass Object
(
[type] => single
[slug] => view_admin_dashboard
[menus] => stdClass Object
(
[label] => Dashboard
[icon] => dashboard
[url] => main/dashboard
)
[submenus] => Array
(
[0] => stdClass Object
(
[submenu_slug] => view_all_users
[label] => View all Users
[icon] => users
[url] => main/users/all
)
[1] => stdClass Object
(
[submenu_slug] => delete_users
[label] => Delete Users
[icon] => users
[url] => main/user/delete
)
)
)
我现在有这个,但它在_数组中给我的错误期望参数2是数组
foreach($mainarray as $menus => $menu){
if(in_array("main/dashboard",$menu)){
foreach($menu as $submenu){
echo $submenu->url;
}
}
}
也许你想要这样的东西:
foreach($mainarray as $menu){
if($menu->menus->url == "main/dashboard"){ // if found the url in the object
foreach($menu->submenus as $submenu)
echo $submenu->url;
}
}
}
什么是
$mainarray
?$main array是使用的整个数组,它不是一个数组,而是一个对象-这就是为什么它在调试输出中显示stdClass
。如果单词都是大写/小写格式,则解决方案将不起作用。