How to swap keys with values in array?

22,121

Solution 1

PHP has the array_flip function which exchanges all keys with their corresponding values, but you do not need it in your case because the arrays are the same.

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

This array has the keys 0, 1, and 2.

Solution 2

Use array_flip(). That will do to swap keys with values. However, your array is OK the way it is. That is, you don't need to swap them, because then your array will become:

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

not

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

Solution 3

See: array_flip

Solution 4

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

and

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

are the same array, the second form has 0,1,2 as implicit keys. If your array does not have numeric keys you can use array_values function to get an array which has only the values (with numeric implicit keys).

Otherwise if you need to swap keys with values array_flip is the solution, but from your example is not clear what you're trying to do.

Solution 5

$flipped_arr = array_flip($arr); will do that for you.

(source: http://php.net/manual/en/function.array-flip.php)

Share:
22,121
daGrevis
Author by

daGrevis

Hacker working with Clojure, Python, ReactJS and Docker. Enjoys r/unixporn and r/vim. Loves DotA 2, blues rock and gym. Really loves his girlfriend. https://twitter.com/daGrevis https://github.com/daGrevis https://news.ycombinator.com/user?id=daGrevis https://lobste.rs/u/daGrevis http://www.linkedin.com/in/daGrevis

Updated on June 25, 2020

Comments

  • daGrevis
    daGrevis almost 4 years

    I have array like:

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

    I need to convert it to:

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

    What's the fastest way to swap keys with values?

  • Treffynnon
    Treffynnon almost 13 years
    Reread the manual on this one as it does not do what you think it does. php.net/manual/en/function.array-reverse.php