PHP Функция array_values: Подробное Руководство
Подробное руководство по функции array_values() в PHP: синтаксис, примеры использования и сравнение со связанными функциями.
Функция array_values() возвращает все значения array, переиндексируя их с последовательными целочисленными ключами, начиная с 0. Это одна из простейших и наиболее часто используемых вспомогательных функций для работы с array в PHP: если в array есть пропуски в ключах или строковые ключи, которые больше не нужны, array_values() возвращает чистый array в виде списка. На этой странице рассматриваются синтаксис функции, ситуации, когда её стоит применять, сравнение со связанными функциями, а также рабочие примеры.
Что такое функция array_values()?
array_values() — это встроенная функция PHP, которая принимает array и возвращает новый array, содержащий все его значения. Исходный array остаётся неизменным. Возвращаемый array всегда использует последовательные целочисленные ключи (0, 1, 2, …), а оригинальные ключи — как строковые, так и непоследовательные целочисленные — отбрасываются. Относительный порядок значений сохраняется.
Синтаксис и возвращаемое значение
array_values(array $array): array$array— входной array, значения которого нужно извлечь.- Возвращает индексированный array со всеми значениями, переиндексированными с
0.
Как работает array_values()?
Синтаксис прост. Вот базовый пример:
Результат выполнения этого кода:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)Как видно, функция array_values() принимает входной array $input и возвращает новый array $output, содержащий все значения $input, с новыми числовыми ключами, начиная с нуля. Оригинальные ключи входного array отбрасываются.
Зачем использовать array_values()?
Функция array_values() может быть полезна в различных ситуациях. Например, если у вас есть ассоциативный array с непоследовательными ключами, вы можете использовать array_values(), чтобы создать новый array с последовательными числовыми ключами. Это удобно, когда нужно выполнять операции над значениями исходного array, требующие последовательных ключей, — например, сортировку или поиск.
Ещё один вариант применения array_values() — когда нужно удалить ключи из array, сохранив при этом порядок значений. При вызове array_values() на исходном array новый array будет иметь тот же порядок элементов, что и исходный, но с числовыми ключами, начиная с нуля.
Сравнение array_values() с другими функциями PHP
Помимо array_values(), в PHP есть другие функции, выполняющие схожие задачи. Краткое сравнение:
array_keys(): Возвращает array всех ключей входного array — зеркальное отображениеarray_values().array_flip(): Меняет местами все ключи и соответствующие им значения.array_combine(): Создаёт новый array, используя один array в качестве ключей, а другой — в качестве значений.array_column(): Возвращает значения из одного столбца многомерного array.
Хотя эти функции полезны сами по себе, они применяются в разных случаях. array_keys() и array_flip() работают с ключами array, тогда как array_combine() объединяет два array в один. Подробнее о array в целом смотрите в главе PHP Arrays.
Лучшие практики использования array_values()
Несколько советов и рекомендаций по эффективному использованию array_values():
- Помните, что
array_values()отбрасывает оригинальные ключи входного array. Если нужно сохранить ключи, используйте другую функцию, напримерarray_keys(). - Если у вас есть array с непоследовательными ключами, используйте
array_values()для создания нового array с последовательными ключами перед выполнением операций, требующих последовательности. - Используйте
array_values()для удаления ключей из array с сохранением порядка значений. - При работе с большими array учитывайте, что создание нового array с помощью
array_values()может потреблять значительный объём памяти. В таких случаях рассмотрите альтернативные методы, не требующие создания нового array. - Используйте осмысленные соглашения об именовании переменных, чтобы код был более читаемым и понятным.
Практические примеры использования array_values()
Рассмотрим несколько практических примеров использования array_values() в PHP-коде.
Пример 1: Удаление нечисловых ключей из array
Предположим, у вас есть ассоциативный array с нечисловыми ключами, и вы хотите удалить эти ключи и создать новый array с последовательными числовыми ключами. Вот как это можно сделать с помощью array_values():
Использование функции array_values в PHP с ассоциативным array
Результат выполнения этого кода:
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => date
)Как видно, array_values() создал новый array с последовательными числовыми ключами, отбросив оригинальные нечисловые ключи.
Пример 2: Переиндексация array после фильтрации
Это наиболее распространённый практический вариант применения array_values(). Такие функции, как array_filter(), сохраняют оригинальные ключи, поэтому при удалении элементов в нумерации возникают пропуски. Последующий вызов array_values() даст чистый список без пропусков:
Переиндексация array в PHP после array_filter()
Результат выполнения этого кода:
Array
(
[2] => 10
[3] => 15
[4] => 20
)
Array
(
[0] => 10
[1] => 15
[2] => 20
)Обратите внимание: array_filter() сохраняет оригинальные ключи 2, 3 и 4, тогда как array_values() сбрасывает их до 0, 1 и 2. Это важно, если впоследствии array будет закодирован в JSON (целочисленные ключи с пропусками превратятся в JSON object вместо array) или если вы обращаетесь к элементам по позиции.
Заключение
array_values() возвращает новый переиндексированный array, содержащий все значения входного array, и отбрасывает оригинальные ключи. Используйте эту функцию всякий раз, когда нужен чистый array в виде списка — чаще всего после операций фильтрации, удаления или сортировки, оставляющих непоследовательные ключи. Помните, что функция никогда не изменяет исходный array, а создаваемая ею копия для очень больших array имеет ненулевую стоимость по памяти.