2011-07-27 19 views
11

tengo matriz como:¿Cómo se intercambian claves con valores en array?

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

tengo que convertirlo a:

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

¿Cuál es la manera más rápida para intercambiar claves con los valores?

+1

array_flip ¿quizás? Hace exactamente lo que dijo **, no lo que quiere (porque lo que quiere no es realmente significativo). –

+1

Utilice [matriz_fijo] (http://blog.jterminal.com/2014/07/use-php-array_flip-function-to-exchange-keys-and-associated-values-in-an-array.html) para canjear llaves con valores – Jasir

Respuesta

22

php tienen array_flip función, pero en su caso

que no lo necesita es la misma cosa

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

esta matriz tiene teclas como 0,1,2

4

Uso array_flip(). Eso hará para intercambiar claves con valores. Sin embargo, tu matriz está bien tal como está. Es decir, no es necesario para intercambiarlas, porque entonces la matriz se convertirá en:

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

no

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

Vuelva a leer el manual en este ya que no hace lo que usted cree que hace. http://www.php.net/manual/en/function.array-reverse.php – Treffynnon

+0

edit noted. Voto corregido. :-) – Treffynnon

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

y

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

son la misma matriz, la segunda forma tiene 0,1,2 teclas como implícitos. Si su matriz no tiene teclas numéricas, puede usar la función array_values para obtener una matriz que solo tenga los valores (con teclas numéricas implícitas).

De lo contrario, si necesita cambiar las claves con los valores array_flip es la solución, pero de su ejemplo no está claro lo que está tratando de hacer.

Cuestiones relacionadas