【问题标题】:get key with specific value from multidimention array从多维数组中获取具有特定值的键
【发布时间】:2014-08-09 04:34:17
【问题描述】:

我有一个如下的数组:

$array=["satu"=>"mangga","dua"=>array("melon","apel")];

如何使用 $buah="melon" 获得“dua”

我试过这个方法,当 $buah = "mangga" 时,输出是 "satu" 但是当 $buah = "melon" 我什么也没得到,我怎么能用 $buah="melon" 得到 "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 arrays multidimensional-array array-key


    【解决方案1】:

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

    <?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 放在一个函数中,并可以对其进行递归调用。希望对您有所帮助:)

    【讨论】:

    • 他想拿到钥匙,你在呼应价值。
    • 它的工作,只需将 $value1 & $value 更改为 $key..非常感谢:D
    • 你可以使用in_array()来搜索子数组,你不需要另一个foreach
    【解决方案2】:

    看看这可能会有所帮助:

    <?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);
    
            ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2016-11-17
      • 2013-06-14
      相关资源
      最近更新 更多