Как поменять местами значения и ключи массива: array_flip()
Функция php array_flip() позволяет поменять местами значения и ключи в массиве (случаи бывают разные, иногда требуется и такое). Синтаксис функции:
1 |
array array_flip ( array $someArray ) |
то есть в качестве параметра принимается массив и возвращается уже измененный массив, в котором, как говорится, все поставлено «с ног на голову».
Давайте рассмотрим простой пример. Допустим, у нас есть следующий массив данных:
1 2 3 4 |
<?php $baseArray = array("one" => 3, "two" => 2, "three" => 1); $baseArray = array_flip($baseArray); print_r($baseArray); |
На экран будет выведено:
1 2 3 4 5 6 |
Array ( [3] => one [2] => two [1] => three ) |
Как видим, порядок элементов сохранился таким, какой он был до работы данной функции.
Нужно отметить, что значения исходного массива должны быть типа integer или string, иначе будет выведена ошибка «Warning», а сам элемент не будет включен в результирующий массив. Рассмотрим пример:
1 2 3 4 |
<?php $baseArray = array("one" => 3, "two" => null, "three" => 1); $baseArray = array_flip($baseArray); print_r($baseArray); |
В результате получим предупреждение:
Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values!
А итоговый массив будет таким:
1 2 3 4 |
( [3] => one [1] => three ) |
Категория: PHP-скрипты