Php 如何过滤这个多维数组?

Php 如何过滤这个多维数组?,php,Php,这是我的输入数组: 输入: $input["a"]["b"]["UK"] = 96 ; $input["a"]["c"]["UK"] = 69 ; $input["a"]["bp"]["USA"] = 29 ; $input["a"]["c"]["USA"] = 59 ; $input["a"]["dd"]["UK"] = 31 ; $input["a"]["cg"]["UK"] = 38 ; $output["a"]["bp"]["USA"] = 29 ; $output["a"]["c"]

这是我的输入数组:

输入:

$input["a"]["b"]["UK"] = 96 ;
$input["a"]["c"]["UK"] = 69 ;
$input["a"]["bp"]["USA"] = 29 ;
$input["a"]["c"]["USA"] = 59 ;
$input["a"]["dd"]["UK"] = 31 ;
$input["a"]["cg"]["UK"] = 38 ;
$output["a"]["bp"]["USA"] = 29 ;
$output["a"]["c"]["USA"] = 59 ;
我想得到一个只包含[“USA”]的新数组。因此,输出必须是

输出:

$input["a"]["b"]["UK"] = 96 ;
$input["a"]["c"]["UK"] = 69 ;
$input["a"]["bp"]["USA"] = 29 ;
$input["a"]["c"]["USA"] = 59 ;
$input["a"]["dd"]["UK"] = 31 ;
$input["a"]["cg"]["UK"] = 38 ;
$output["a"]["bp"]["USA"] = 29 ;
$output["a"]["c"]["USA"] = 59 ;
有可能吗?

这会有用的

$input["a"]["b"]["UK"]   = 96 ;    
$input["a"]["c"]["UK"]   = 69 ;
$input["a"]["bp"]["USA"] = 29 ;
$input["a"]["c"]["USA"]  = 59 ;
$input["a"]["dd"]["UK"]  = 31 ;
$input["a"]["cg"]["UK"]  = 38 ;
$tempResult = array();

foreach($input as $key => $value){

    foreach($value as $subkey => $subvalue){

        foreach($subvalue as $finalkey => $finalvalue){

            if($finalkey == 'USA') {

                $tempResult[$key][$subkey][$finalkey] = $finalvalue;
            }
        }
    }
}

echo '<pre>';print_r($tempResult);echo '</pre>';
$input[“a”][“b”][“UK”]=96;
$input[“a”][“c”][“UK”]=69;
$input[“a”][“bp”][“美国”]=29;
$input[“a”][“c”][“USA”]=59;
$input[“a”][“dd”][“UK”]=31;
$input[“a”][“cg”][“UK”]=38;
$tempResult=array();
foreach($key=>$value的输入){
foreach($subkey=>$subvalue形式的值){
foreach($finalkey=>$finalvalue的子值){
如果($finalkey==‘美国’){
$tempResult[$key][$subkey][$finalkey]=$finalvalue;
}
}
}
}
回声';打印结果($tempResult);回声';


我认为user2944231更干净,但最直接的答案是使用foreach循环:


它是三维阵列。我试过这样做。但是我没有得到我想要的答案。那么更新你的问题,告诉我们你有什么,我还在努力。如果你得到更接近的解决方案,我将添加我的草稿。如果是四维或n维呢。在这种情况下,你必须创建递归函数,需要指定深度(第4层或n层),并将上面提到的相同内容放在那里。