Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reverse an associative array with preserving keys in PHP

I spent half an hour but I haven't found a solution.

Following example of an array:

array(14) {
  ["label_text"]=> string(10) "Label text"
  ["e-mail"]=> string(6) "E-Mail"
  ["company"]=> string(7) "Company"
  ["last_name"]=> string(9) "Last name"
  ["first_name"]=> string(10) "First name"
}

What I want to do is just reverse the elements, so that the result is this:

array(14) {
  ["first_name"]=> string(10) "First name"
  ["last_name"]=> string(9) "Last name"
  ["company"]=> string(7) "Company"
  ["e-mail"]=> string(6) "E-Mail"
  ["label_text"]=> string(10) "Label text"
}

There must be a native php for this, but I think I'm blind. I just don't know which function to use.

Any help appreciated!

like image 430
Johannes Klauß Avatar asked Mar 26 '13 16:03

Johannes Klauß


3 Answers

use array_reverse().

array array_reverse ( array $array [, bool $preserve_keys = false ] )

Takes an input array and returns a new array with the order of the elements reversed.

Note: make sure you read the documentation about the 2nd argument of said function.

like image 164
Gung Foo Avatar answered Nov 14 '22 06:11

Gung Foo


What about the reverse function array_reverse ?

$reversed = array_reverse($array, true);

Doc: http://php.net/manual/en/function.array-reverse.php

like image 5
TheEwook Avatar answered Nov 14 '22 07:11

TheEwook


You're looking for the array_reverse() function:

$new_array = array_reverse($old_array);
like image 3
BenM Avatar answered Nov 14 '22 07:11

BenM