这是我的阵列:
array(1) {
["farm"]=>
array(1) {
["animals"]=>
array(1) {
[horses]=>
array(4) {
["fred"]=>
string(4) "fred"
["sam"]=>
string(4) "sam"
["alan"]=>
string(4) "alan"
["john"]=>
string(4) "john"
}
}
}
}
这是我的网址
mypage.php?id=2&dir=animals
我想打印我的网址参数dir
的子项(在这种情况下:动物)
这是我尝试这样做的方式:
foreach($array as $sub) {
if ($_GET['dir'] == $sub){
$result = array_merge($result, $sub);
echo $result;
}
}
我的结果:空白页面。
我希望的结果:horses
答案 0 :(得分:1)
你的阵列:
$arr = array("farm" =>
array("animals"=>
array("horses" =>
array("fred" => "fred",
"sam" => "sam",
"alan" => "alan",
"john" => "john")
)
)
);
在这里,我做一个用于搜索值的递归函数。
如果您搜索
fred
及其兄弟姐妹,此功能将无效。
$search = 'horses';
get_values($arr);
function get_values($arr){
global $search;
foreach($arr as $key => $value){
if($key == $search){
if(is_array($value)){
echo join(", ", array_keys($value));
}
else{
echo $value;
}
}else{
get_values($value);
}
}
}
<强>输出:强>
弗雷德,萨姆,艾伦,约翰
答案 1 :(得分:0)
您的$array
有一个farm
密钥,而farm
只包含您的dir
个动物。
如果所有内容都在farm
中,您可以这样做:
if(!empty($_GET['dir'])) {
$result = array_merge($result, $array['form'][$_GET['dir']]
}
print_r($result);
我不知道最初的$ result包含哪些内容,但如果不是这种情况,您可以进行调整;如果您在echo $array['form'][$_GET['dir']]
中没有多个项目,则可以$result
进行调整/ p>