2016-02-17 14 views
7

Mam tablice strukturze jak poniżej:Jak zrobić tablicę pierwszą wartość jako klucz do drugiej wartości jako wartości w tablicy 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" 
} 

chcę te tablica powinna być jak ten poniżej:

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

Jak mogę to osiągnąć? Proszę pomóż mi.

+1

wystarczy użyć 'foreach', a następnie przypisać go w innej tablicy przy użyciu' uid' jako klucz i 'name' jako wartość, można tylko próbować – Ghost

+0

nad jednym jest pojedynczy wielowymiarowa tablica lub dwa różne jedno- tablica wymiarowa? –

+1

@ A-2-A, nie ma różnicy, imho ... – ankhzet

Odpowiedz

7

Updated

Można spróbować z array_column() -

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

Demo

Uwaga: array_column() niedostępne dla PHP < 5,5

Jeśli jesteś u śpiewaj niższe wersje PHP użyj pętli.

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

'kolumna_tablicowa' akceptuje trzeci parametr, co jeszcze bardziej ułatwiłoby to. Zapoznaj się z dokumentacją, do której odnośnik prowadzi się ponownie. – deceze

+0

@deceze Dzięki. Nigdy tego nie przeżyłem. :) –

+0

to działa poprawnie, ponieważ wymagałem. ale mam jeden problem z mojego bieżącego kwerendy, które wykonuję. $ results = db_query ("SELECT DISTINCT u.uid jako uid, u.name jako name Z użytkowników u WHERE u.uid IN (SELECT p.endpoints_entity_id jako uid OD field_data_endpoints p Relacja 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); To zapytanie tworzy duplikat tablicy. Jak mogę rozwiązać ten problem. – Mandy

Powiązane problemy