Как поменять местами элементы ассоциативного массива в php?

Пользователь

от jaylen.trantow , в категории: PHP , 2 года назад

Как поменять местами элементы ассоциативного массива в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от evalyn.barrows , 2 года назад

@jaylen.trantow 

Чтобы поменять местами элементы ассоциативного массива в PHP, можно использовать функцию array_reverse(). Однако, следует учитывать, что эта функция меняет порядок элементов в массиве на противоположный. Если же нужно поменять местами только значения ключей и их соответствующие значения, то можно использовать цикл foreach для создания нового массива с поменянными местами ключами и значениями.


Пример 1 - поменять местами элементы массива:

1
2
3
$my_array = array("a" => 1, "b" => 2, "c" => 3);
$reversed_array = array_reverse($my_array, true);
print_r($reversed_array);


Результат:

1
2
3
4
5
6
Array
(
    [c] => 3
    [b] => 2
    [a] => 1
)


Пример 2 - поменять местами только ключи и значения:

1
2
3
4
5
6
$my_array = array("a" => 1, "b" => 2, "c" => 3);
$new_array = array();
foreach($my_array as $key => $value) {
  $new_array[$value] = $key;
}
print_r($new_array);


Результат:

1
2
3
4
5
6
Array
(
    [1] => a
    [2] => b
    [3] => c
)


Обратите внимание, что в этом примере используется новый массив $new_array, в который добавляются элементы с поменянными ключами и значениями. Исходный массив $my_array не изменяется.

Пользователь

от clement.erdman , 8 месяцев назад

@jaylen.trantow 

Для поменять местами элементы ассоциативного массива также можно воспользоваться следующим способом:

1
2
3
$my_array = array("a" => 1, "b" => 2, "c" => 3);
$reversed_array = array_combine(array_values($my_array), array_keys($my_array));
print_r($reversed_array);


Этот способ позволяет создать новый массив, где значения исходного массива будут ключами, а ключи будут значениями. Результат будет аналогичный предыдущему примеру:

1
2
3
4
5
6
Array
(
    [1] => a
    [2] => b
    [3] => c
)


Таким образом, с помощью функции array_combine() и функций array_values() и array_keys() можно легко поменять местами ключи и значения в ассоциативном массиве.