Php 从多维数组中获取具有特定值的键

Php 从多维数组中获取具有特定值的键,php,arrays,multidimensional-array,array-key,Php,Arrays,Multidimensional Array,Array Key,我有一个如下所示的数组: $array=["satu"=>"mangga","dua"=>array("melon","apel")]; 如何使用$buah=“甜瓜”获得“dua” 我尝试过这个方法,当$buah=“mangga”时,输出是“satu”,但是当$buah=“meloon”我什么都没有得到时,我怎么能用$buah=“meloon”得到“dua”。多谢各位 $array=["satu"=>"mangga","dua"=>array("melon","apel

我有一个如下所示的数组:

$array=["satu"=>"mangga","dua"=>array("melon","apel")];
如何使用$buah=“甜瓜”获得“dua”

我尝试过这个方法,当$buah=“mangga”时,输出是“satu”,但是当$buah=“meloon”我什么都没有得到时,我怎么能用$buah=“meloon”得到“dua”。多谢各位

$array=["satu"=>"mangga","dua"=>array("melon","apel")];
   $buah = "melon";
   $a = array_search($buah,$array);
        if(is_array($a)){
          $x= array_search($buah,$a);
          echo $x;
        }else{
          echo $a;
        }

试试这段代码,它将适用于你的数组结构

<?php
$array=array(
    "satu"=>"mangga",
    "dua"=>array(
            "melon",
            "apel",
            ),
    );
    foreach($array as $key=>$value)
    {
        if(is_array($value))
        {
            foreach($value as $key1=>$value1)
            {
                if($value1=="melon")
                {
                    echo $value1;
                }   
            }
        }
        else if($value=="melon")
        {
            echo $value;
        }
    }
?>

然而,如果您想使它成为任何结构的全局函数,您可以将foreach放在一个函数中,并对其进行递归调用。希望此帮助:)

请参阅此帮助:

<?php 
$haystack=array("satu"=>"mangga","dua"=>array("melon","apel"));
   $needle = "melon";


        function recursive_array_search($needle,$haystack) {
            foreach($haystack as $key=>$value) {
                $current_key=$key;
                if(is_array($value)) {
                   foreach($value as $val){
                                if($needle == $val)
                                    echo $current_key;
                            }

            }else if($needle == $value){
                echo $current_key;
            }
        }
        }
        recursive_array_search($needle,$haystack);

        ?>


他想得到密钥,你在回显该值。这很有效,只需将$value1&$value更改为$key即可。非常感谢:你可以使用数组()中的
来搜索子数组。
你不需要为每个
再添加一个