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