2017-04-27 137 views
2

的我认为,从标题就不是完全清楚的价值观里面的数组值的价值,但这是这种情况:获取阵列1 specifing阵列1

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

$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的原生功能的快速方式(不使用循环或其他东西)是specifing这个数组的名字另一个数组里面,它让我回到与这个名字相关的信息。

例子:

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

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

我不认为你可以做到这一点,而不检查名称字段。即使有一个本地函数,它会在引擎盖下使用循环 – mehulmpt

+0

你是对的,我不是很清楚的消息。我的意思是不使用循环,并且在使用PHP的本地函数更方便更简单的方法时执行新的功能。 – Keaire

回答

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值数组中重复,你必须创造更独特的密钥。

+0

是的,有....你不必重建任何东西 – VikingCode

+0

@VikingCode引擎盖下隐藏循环,好吧。 –

1

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

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