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….. Что означает, можно переворачивать только строковые и целочисленные значения.