我正在编写一个 PHP 递归函数来使用它们的值从数组中获取数据。所以这是我要构建的功能:
function test($menu) {
$url = "test.com/accounts/overview/";
foreach($menu as $data) {
if( is_array($data) and array_key_exists("t_link", $data) and $data["t_link"] === $url ) {
return $data["t_icon"];
} else if(is_array($data)) {
test($data);
}
}
}
echo test($menu);
从我的数组开始,第一个条件只有一次为真,并且必须return返回值并终止函数,不是吗?但为什么它没有返回?另外,如果我使用echo $data["t_icon"];而不是return $data["t_icon"];它显示正确的结果:fa fa-book。
这是我试图t_icon根据值获取值的数组t_link。条件是如果t_link值有test.com/accounts/overview/那么它将返回fa fa-book
$menu = array ();
$menu["Dashboard"] = array (
"t_link" => "test.com",
"t_icon" => "fa fa-dashboard"
);
$menu["Accounts"] = array (
"t_link" => "test.com/accounts",
"t_icon" => "fa fa-books"
);
$menu["Accounts"]["Overview"] = array (
"t_link" => "test.com/accounts/overview/",
"t_icon" => "fa fa-book" <<-- This value I want to get
);
我搜索了很多并得到这个我应该像这样在第二个条件内返回函数return test($data);。但它也不起作用。谢谢。
慕标5832272
慕桂英3389331