Php 给定多维数组的键,如何获取其值?

Php 给定多维数组的键,如何获取其值?,php,Php,例如: $animal = ("bird" => "crow", "cat" => "lion", "snake" => "cobra"); 我想获取所有键为的值 function_name_get_value(["monkey","goat","bird"]); 我尝试使用array\u key\u exists(),但问题是我无法传递$animal变量,因为它指定了要传递给函数的参数function\u name\u get\u value很简单,只需传递两个参数,一个

例如:

$animal = ("bird" => "crow", "cat" => "lion", "snake" => "cobra");
我想获取所有键为的值

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

我尝试使用
array\u key\u exists()
,但问题是我无法传递
$animal
变量,因为它指定了要传递给函数的参数
function\u name\u get\u value

很简单,只需传递两个参数,一个是key的名称,另一个是array

function getValue($arr, $key)
{
   return isset($arr[$key]) && is_array($arr) ? $arr[$key] : false;
}
如果你想得到更多的关键点,只需使用循环

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;
}

需要两个参数,一个是keyname,另一个是array。我看不到任何其他在数组中查找键的选项。您必须至少传递2个参数

问题指定唯一的参数是[“monkey”、“goat”、“bird”]。我不想写它,但解决方法是使用$\u GLOBALS关键字;/你确定你不能像我建议的那样通过另一个论点吗?这个函数的主体是什么?为什么需要使用它?首先,它不是多维数组。第二行的语法:
unction_name_get_value([“monkey”、“goat”、“bird”)不正确。您只需执行
$animal['monkey']
即可获得值。多维数组是一个类似于:array('a'=>array('b'))的数组,$animal数组是一个平面数组。正如sirwilliam提到的,您可以以$animal['monkey']的形式访问数组元素。如果需要函数返回给定键的值,则需要使用$\u全局数组,这是一种不好的做法。@sirwilliam:数组的sytax不正确,但从PHP5.4开始,方括号就没问题了。我发现这个问题令人困惑——在我看来,从您描述的内容来看,您试图通过一个键数组过滤一个数组。如果是这样的话,你可以试着使用@minitech uk me,你是对的!我仍然使用PHP5.3.9,所以我不知道。