Reverse an associative array with preserving keys

2019-04-07 04:31发布

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!

4条回答
闹够了就滚
2楼-- · 2019-04-07 04:53

You're looking for the array_reverse() function:

$new_array = array_reverse($old_array);
查看更多
一夜七次
3楼-- · 2019-04-07 04:56

What about the reverse function array_reverse ?

$reversed = array_reverse($array, true);

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

查看更多
乱世女痞
4楼-- · 2019-04-07 05:04

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.

查看更多
我命由我不由天
5楼-- · 2019-04-07 05:07

Just do it like this:

$reversed = array_combine(
   array_reverse(array_keys($arr)),
   array_reverse(array_values($arr))
);
查看更多
登录 后发表回答