PHP поменять местами ключи и значениями в массиве
Иногда в разработке появляется потребность поменять местами ключи и значения в массиве, для этого есть готовая встроенная функция array_flip. Куда нужно передать только один параметр. Функция меняет местами ключи со значениями, результат можно сохранить в новую переменную или в эту же.
Пример 1
<?php
$testArray = array(
0 => 'element_1',
1 => 'element_2',
2 => 'element_3',
3 => 'element_4',
4 => 'element_5',
5 => 'element_6',
6 => 'element_7',
7 => 'element_8',
8 => 'element_9',
9 => 'element_10',
);
$newArray = array_flip($testArray);
print_r($newArray);
?>
В результате получим:
Array
(
[element_1] => 0
[element_2] => 1
[element_3] => 2
[element_4] => 3
[element_5] => 4
[element_6] => 5
[element_7] => 6
[element_8] => 7
[element_9] => 8
[element_10] => 9
)
Если передать функции array_flip многомерный массив или значениями будут числа с плавающей точкой, то она обработает ключи и значения, находящиеся на первом уровне и только строки и целые числа, пропустит вложенные массивы и числа с плавающей точкой и cгенерирует ошибку, уровня E_WARNING c сообщением array_flip(): Can only flip string and integer values, entry skipped in….. Что означает, можно переворачивать только строковые и целочисленные значения.