2017-04-27 127 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']]);