doutonghang2761 2013-06-03 06:44
浏览 40

如何根据密钥获取多维数组的值?

Example:

$animal = ("bird" => "crow", "cat" => "lion", "snake" => "cobra");

I want to get all values whose keys are

function_name_get_value(["monkey","goat","bird"]);

I tried using array_key_exists() but the problem is I cannot pass the $animal variable since it is specified what arguments are to be passed on function function_name_get_value

  • 写回答

1条回答 默认 最新

  • douhuzhi0907 2013-06-03 06:47
    关注

    It's simple you just need to pass 2 arguments one is name of key and second is array.

    function getValue($arr, $key)
    {
       return isset($arr[$key]) && is_array($arr) ? $arr[$key] : false;
    }
    

    if you want get more keys just use loop.

    function getValue($arr, $keyArr)
    {
       if(!is_array($arr) || !is_array($keyArr)) return false;
    
       $found = array();
       foreach($keyArray as $key)
       if(array_key_exists($key, $arr)) $found[$key] = $arr[$key];
       return $found;
    }
    

    array_key_exists needs two arguments one is keyname and second is array. I don't see any other option to find a key in array. You must pass 2 parametrs at least

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分