Операции с ключами и значениями элементов массива реализуются с помощью следующих основных функций:
bool array_key_exists(mixed key, array search)
array array_keys(array input [, mixed search_value])
array array_values(array input)
array array_flip(array trans)
array array_fill(int start_index, int num, mixed value)
array array_change_key_case(array input [, int case])
Функция array_key_exists() проверяет, существует ли в массиве элемент с заданным ключом.
Функции array_keys()и array_values() возвращают массивы, содержащие соответственно ключи и значения элементов исходного массива (если задан параметр search_value, то выбираются элементы только с заданным значением ключа).
Функция array_flip()меняет местами ключи и значения в массиве trans.
Функция array_fill() заполняет num элементов массива, начиная со start_index, заданным значением value.
Функция array_change_key_case() изменяет регистр значений ключей на нижний (если параметр case равен CASE_LOWER) или верхний (если параметр case равен CASE_UPPER). По умолчанию значения ключей переводятся в нижний регистр.
Пример 4.6.107. Использование функции array_key_exists():
Определение максимального и минимального значения числового ключа в массиве $a и вставка в массив элементов с отсутствующими ключами (значения этих элементов равны 0):
|
|
$a = array(3=>5, 1=>8, 5=>12); // Массив чисел
// Начальное максимальное значение ключа
$keyMax = -32767;
// Начальное минимальное значение ключа
$keyMin = 32767;
foreach($a as $key=>$value) // Цикл по ключам массива
{
// Определение текущего максимального
// значения ключа
if($key > $keyMax)
$keyMax = $key;
// Определение текущего минимального
// значения ключа
if($key < $keyMin)
$keyMin = $key;
}
// Цикл по элементам массива $a от минимального
// до максимального значения ключа
for($i = $keyMin; $i <= $keyMax;$i++)
// Если элемент с текущим ключом
// в массиве $a не существует
if(!array_key_exists($i, $a))
$a[$i] = 0; // Добавление элемента со значением 0
print_r($a); // Вывод нового массива
Обновленный массив $a будет иметь следующий вид:
Пример 4.6.108. Использование функций array_keys() и array_values():
Для заданного массива $a определяется массив его ключей $arrayKey и массив его значений $arrayValue:
$a = array(3=>5, 5=>8, 7=>12, 9=>5); // Массив чисел
// Получение массива ключей
$arrayKey = array_keys($a);
// Вывод массива ключей
print '$arrayKey: '; print_r($arrayKey);
// Получение массива значений
$arrayValue = array_values($a);
// Вывод массива значений
print '$arrayValue: '; print_r($arrayValue);
Выводимые массивы будут иметь следующий вид:
Пример 4.6.109. Использование функции array_flip():
Получение массива $b, который содержит переставленные местами ключи и значения массива $a (при этом элементы массива $a, которые имеют одинаковое значение, удаляются, кроме последнего элемента):
$a = array(3=>5, 5=>8, 7=>12, 9=>5); // Массив чисел
$b = array_flip($a); // Перестановка ключей и значений
print '$b: '; print_r($b); // Вывод нового массива
Массив будет $b иметь следующие элементы: