2016-02-17 29 views
7

我已經陣列結構如下圖所示:如何使陣列的第一值爲鍵在PHP數組的第二個值的價值

array(2) { 
    ["uid"]=> 
    string(2) "39" 
    ["name"]=> 
    string(18) "Manoj Kumar Sharma" 
} 
array(2) { 
    ["uid"]=> 
    string(2) "47" 
    ["name"]=> 
    string(11) "S kK Mishra" 
} 

我希望這些陣列應該是這樣的下面:

array(4) { 
     [39]=> 
     string(18) "Manoj Kumar Sharma" 
     [47]=> 
     string(11) "S kK Mishra" 
    } 

我怎樣才能做到這一點?請幫幫我。

+1

只使用一個'foreach',然後使用'uid'爲重點和'name'的值賦給它在另一個數組,你可以只是嘗試 – Ghost

+0

上面一個是單一的多維數組或兩個不同的單二維數組? –

+1

@ A-2-A,沒有區別,imho ... – ankhzet

回答

7

更新

您可以array_column()試試這個 -

$new = array_column($arr, 'name', 'uid'); 

Demo

注:array_column()不可用。如果你是u代表PHP < 5.5

使用循環播放較低版本的PHP

$new = array(); 
foreach($your_array as $array) { 
    $new[$array['uid']] = $array['name']; 
} 
+2

'array_column'接受第三個參數,這會使這更容易。閱讀您自己鏈接到的文檔。 – deceze

+0

@deceze謝謝。從來沒有經歷過。 :) –

+0

這是工作正常,因爲我需要。但我有我當前正在執行的查詢的一個問題。 $ result = db_query(「SELECT DISTINCT u.uid as uid,u.name as name FROM users u WHERE u.uid IN(SELECT p.endpoints_entity_id as uid FROM field_data_endpoints p JOIN關係r ON r.rid = p.entity_id WHERE p.bundle ='subuser'AND p.deleted = 0 AND p.delta = 0 AND r.uid = $ user-> uid)「) - > fetchAll(PDO :: FETCH_ASSOC);這個查詢創建重複的數組。我如何解決這個問題。 – Mandy

相關問題