使用Value获取多维数组的键

时间:2015-06-09 16:04:35

标签: php arrays

我有一个数组...

$arrays = array(
    'image'    => array('jpg','jpeg','png'),
    'document' => array('pdf','docx','pptx'),
);

这是我的扩展变量

$ext = 'jpg';

我想要实现的是,使用此变量$ext我需要循环并比较多维$arrays中的哪些键和最终输出返回给我image

目前我得到的解决方案是使用2个foreach循环来循环播放匹配:

$type = null;
foreach($arrays as $key=>$arr)
{

    foreach($arr as $k=>$a)
    {
        if($a==$ext)
        {
            $type =  $key;
        }
    }
}

echo $type;

我是PHP初学者&想知道,PHP数组函数是否有更好的解决方案来获取带有值的多维数组中的Key而不是循环它?

1 个答案:

答案 0 :(得分:1)

您可以创建一个自定义函数,它会返回预期的结果,通过创建函数,您可以多次使用它,如下所示: -

function getDataType($ext, $typesArray)
{
  foreach ($typesArray as $key => $types) {
    if (in_array($ext, $types)) {
      return $key;
    }
  }
}
$arrays = array(
    'image'    => array('jpg','jpeg','png'),
    'document' => array('pdf','docx','pptx'),
);
$ext = 'jpg';
echo getDataType($ext, $arrays);