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

时间:2017-04-27 12:45:01

标签: php arrays multidimensional-array

我认为从标题来看并不完全清楚,但情况就是这样:

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

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

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

示例:

如果我具体Brad它给了我一个数组:

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

3 个答案:

答案 0 :(得分:2)

这是我的方法

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

print_r($array[$key]);

供参考
PHP docs : array-search
PHP docs : array-column

答案 1 :(得分:1)

假设您没有重复的项目和重复的名称。

$names = array_column($array, 'name');
$indexs = array_flip($names);
print_r($array[$indexs['Brad']]);

答案 2 :(得分:0)

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

$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')
);

使用简单的isset

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

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