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

Добавить комментарий

Ваш адрес email не будет опубликован.