2011-07-27 16 views
11

Tôi có mảng như:Làm thế nào để trao đổi các khóa với các giá trị trong mảng?

array(
    0 => 'a', 
    1 => 'b', 
    2 => 'c' 
); 

tôi cần phải chuyển nó sang:

array(
    'a', 
    'b', 
    'c' 
); 

cách nhanh nhất để hoán đổi phím với các giá trị là gì?

+1

array_flip có thể? Nó làm chính xác những gì bạn ** nói **, không phải những gì bạn muốn (bởi vì những gì bạn muốn là không thực sự có ý nghĩa). –

+1

Sử dụng [array_flip] (http://blog.jterminal.com/2014/07/use-php-array_flip-function-to-exchange-keys-and-associated-values-in-an-array.html) để hoán đổi các khóa có giá trị. – Jasir

Trả lời

22

php có array_flip chức năng, nhưng trong trường hợp của bạn

bạn không cần nó điều tương tự của nó

array(
    'a', 
    'b', 
    'c' 
); 

mảng này có phím như 0,1,2

4

Sử dụng array_flip(). Điều đó sẽ làm để trao đổi các khóa với các giá trị. Tuy nhiên, mảng của bạn là OK theo cách của nó. Có nghĩa là, bạn không cần phải trao đổi chúng, bởi vì khi đó mảng của bạn sẽ trở thành:

array(
    'a' => 0, 
    'b' => 1, 
    'c' => 2 
); 

không

array(
    'a', 
    'b', 
    'c' 
); 
+0

Đọc lại hướng dẫn trên tài liệu này vì nó không làm những gì bạn nghĩ. http://www.php.net/manual/en/function.array-reverse.php – Treffynnon

+0

chỉnh sửa được ghi chú. Đã bỏ phiếu bầu cử. :-) – Treffynnon

3
array(
    0 => 'a', 
    1 => 'b', 
    2 => 'c' 
); 

array(
    'a', 
    'b', 
    'c' 
); 

là cùng một mảng, hình thức thứ hai có 0,1,2 phím như ngầm. Nếu mảng của bạn không có các phím số, bạn có thể sử dụng hàm array_values để lấy một mảng chỉ có các giá trị (với các khóa ẩn số).

Nếu không, bạn cần trao đổi khóa có giá trị array_flip là giải pháp, nhưng từ ví dụ của bạn không rõ ràng bạn đang cố làm gì.