2011-07-27 13 views
11

Şu diziye sahibim:Anahtarlardaki değerlerle anahtarlar nasıl değiştirilir?

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

Anahtarları değerlerle değiştirmenin en hızlı yolu nedir?

+1

belki array_flip? Tam olarak ne dediğini ** söyler, istediğini değil (çünkü istediğin şey gerçekten anlamlı değildir). –

+1

için [array_flip] (http://blog.jterminal.com/2014/07/use-php-array_flip-function-to-exchange-keys-and-associated-values-in-an-array.html) değiş tokuş etmek için değerleri olan anahtarlar. Eğer öyle düşündüğün yapmaz gibi – Jasir

cevap

22

php array_flip fonksiyona sahiptir ama senin durumunda

size

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

bu dizi 0,1,2

4

Kullanım array_flip() gibi tuşları var onun aynı şeyi gerekmez. Bu, anahtarları değerlerle değiştirecek. Ancak, diziniz olduğu gibi olur. Ardından dizi haline gelecektir çünkü, sen onları takas gerekmez:

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

değil

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

Bu sefer kılavuzu okumasını. http://www.php.net/manual/en/function.array-reverse.php – Treffynnon

+0

düzenlemek kaydetti. Oyu reddedildi. :-) – Treffynnon

2

.

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

ve

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

aynı dizi ikinci bir şekilde 0,1,2 olarak kapalı tuşları vardır vardır. diziniz sayısal tuşları yoksa sen (sayısal örtülü tuşlarıyla) sadece değerlere sahip bir dizisini almak için array_values işlevini kullanabilirsiniz.

Aksi takdirde değerler array_flip ile tuşları yer değiştirme gerekiyorsa çözümdür ancak örnekten Yapmaya çalıştığınız şeyin belli değil.