Php 获取array1的值,该值指定array1值内的数组值

Php 获取array1的值,该值指定array1值内的数组值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我认为从标题上看还不完全清楚,但情况是这样的: 我有一个这样的数组(它更大,这只是一个例子): 我试图找到一种使用PHP本机函数(不使用循环或其他东西)的快速方法,即在另一个数组中指定此数组的名称,它将返回与此名称相关的信息 例如: 如果I specificBrad返回一个数组,其中包含: array('name' => 'Brad', 'age' => '27', 'from' => 'Idk') 没有这样的功能。您唯一的选择是将阵列重建为: $array = array(

我认为从标题上看还不完全清楚,但情况是这样的:

我有一个这样的数组(它更大,这只是一个例子):

我试图找到一种使用PHP本机函数(不使用循环或其他东西)的快速方法,即在另一个数组中指定此数组的名称,它将返回与此名称相关的信息

例如:

如果I specific
Brad
返回一个数组,其中包含:

array('name' => 'Brad', 'age' => '27', 'from' => 'Idk')

没有这样的功能。您唯一的选择是将阵列重建为:

$array = array(
    'John' => array('name' => 'John', 'age' => '29', 'from' => 'Uknown'),
    'Brad' => array('name' => 'Brad', 'age' => '27', 'from' => 'Idk'),
    'Phil' => array('name' => 'Phil', 'age' => '31', 'from' => 'My House')
);
并使用simple
isset

if (isset($array['Brad'])) {
    print_r($array['Brad']);
} else {
    echo 'Brad not found';
}

当然,如果数组中重复了
name
值,则必须创建更多的唯一键。

假设没有重复的项和重复的名称

$names = array_column($array, 'name');
$indexs = array_flip($names);
print_r($array[$indexs['Brad']]);
这是我的方法

$key = array_search('Brad', array_column($array, 'name'));

print_r($array[$key]);
供参考


我认为如果不检查“名称”字段,您就无法做到这一点。即使有一个本机函数,它也会在后台使用循环。你是对的,我在消息中不是很清楚。我的意思是,如果有一种更干净、更容易使用PHP本机函数的方法,就不用使用循环,而是使用一个新函数。。。。你不必重建anything@VikingCode把线圈藏在引擎盖下面,好的。
$key = array_search('Brad', array_column($array, 'name'));

print_r($array[$key]);