Array keys: примеры (PHP)
array_keys(array $array, mixed $filter_value = null, bool $strict = false): arrayФункция array_keys возвращает все или некоторое подмножество ключей массива. Она применяется, когда требуется получить индексы ассоциативного или числового массива для дальнейшей обработки, итерации или проверки наличия определённых значений.
Функция имеет три параметра:
- array (обязательный) — исходный массив, ключи которого необходимо извлечь.
- filter_value (необязательный) — если указан, функция возвращает только ключи, которым соответствует это значение.
- strict (необязательный) — флаг, определяющий использование строгого сравнения (===) при поиске filter_value. По умолчанию равно false.
Пример с одним аргументом:
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$keys = array_keys($array);
print_r($keys);
?>Array
(
[0] => a
[1] => b
[2] => c
)Пример с указанием значения для фильтрации:
<?php
$array = ['a' => 'green', 'b' => 'blue', 'c' => 'green'];
$keys = array_keys($array, 'green');
print_r($keys);
?>Array
(
[0] => a
[1] => c
)Пример со строгим сравнением:
<?php
$array = [0 => '0', 1 => 1, 2 => true];
$keysStrict = array_keys($array, true, true);
$keysNonStrict = array_keys($array, true, false);
print_r($keysStrict);
print_r($keysNonStrict);
?>Array
(
[0] => 2
)
Array
(
[0] => 0
[1] => 1
[2] => 2
)- array_key_exists($key, $array) — проверяет существование конкретного ключа в массиве. Удобна для точечных проверок без извлечения всех ключей.
- key($array) — возвращает ключ текущего элемента массива. Используется при итерации с помощью функций current/next.
- array_search($value, $array, $strict) — ищет значение в массиве и возвращает первый соответствующий ключ. Отличие от array_keys в возврате одного ключа.
- array_flip($array) — меняет местами ключи и значения массива. Может служить альтернативой для получения ключей по значениям, если значения уникальны.
Передача в функцию аргумента, не являющегося массивом, вызовет предупреждение и вернёт null.
<?php
$result = array_keys('not an array');
var_dump($result);
?>Warning: array_keys() expects parameter 1 to be array, string given NULL
Использование несуществующего значения для фильтрации возвращает пустой массив, что иногда интерпретируется как ошибка логики.
<?php
$array = ['a', 'b', 'c'];
$keys = array_keys($array, 'z');
var_dump($keys);
?>array(0) {
}В PHP 8.0 поведение функции при передаче параметров некорректного типа было изменено. Ранее, при передаче аргумента, не являющегося массивом, выдавалось предупреждение, а функция возвращала null. Сейчас в таких случаях выбрасывается исключение TypeError.
<?php
$multiArray = [
'user1' => ['id' => 1, 'name' => 'Alex'],
'user2' => ['id' => 2, 'name' => 'Maria']
];
$firstLevelKeys = array_keys($multiArray);
print_r($firstLevelKeys);
?>Array
(
[0] => user1
[1] => user2
)<?php
$data = ['a' => false, 'b' => 0, 'c' => null, 'd' => ''];
$keysForFalse = array_keys($data, false, true);
print_r($keysForFalse);
?>Array
(
[0] => a
)<?php
$source = ['width', 'height', 'depth'];
$newArray = array_fill_keys(array_keys($source), 0);
print_r($newArray);
?>Array
(
[width] => 0
[height] => 0
[depth] => 0
)<?php
$colors = ['red' => '#FF0000', 'green' => '#00FF00', 'blue' => '#0000FF'];
foreach (array_keys($colors) as $colorName) {
echo "Цвет $colorName имеет код {$colors[$colorName]}".PHP_EOL;
}
?>Цвет red имеет код #FF0000 Цвет green имеет код #00FF00 Цвет blue имеет код #0000FF
Array keys в Python
У словарей есть метод keys(), возвращающий объект представления ключей.
my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = list(my_dict.keys())
print(keys)['a', 'b', 'c']
Array keys в Javascript
Для объектов используется Object.keys(), для массивов — тот же метод, возвращающий индексы.
const obj = {a: 1, b: 2, c: 3};
const keys = Object.keys(obj);
console.log(keys);['a', 'b', 'c']
Array keys в MySQL
Прямого аналога нет, но для получения имён столбцов таблицы используется запрос SHOW COLUMNS.
SHOW COLUMNS FROM table_name;