这是我的数组:
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"
}
}
}
}
这是我的URL
mypage.php?id=2&dir=animals
我想打印我的URL参数dir
(在这种情况下:动物)的子项
这就是我尝试的方法:
foreach($array as $sub) {
if ($_GET['dir'] == $sub){
$result = array_merge($result, $sub);
echo $result;
}
}
我的结果是:一个空页面。
我希望得到的结果:horses
您的数组:
$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);
}
}
}
输出:
弗雷德、山姆、阿兰、约翰
您的$array
有一个farm
密钥,而farm
只包含您的dir
动物。
如果一切都在farm
中,你可以这样做:
if(!empty($_GET['dir'])) {
$result = array_merge($result, $array['form'][$_GET['dir']]
}
print_r($result);
我不知道$result最初包含什么,但如果不是这样,您可以进行调整,或者如果$result
中没有多个项目,则仅使用echo $array['form'][$_GET['dir']]