Получить первый элемент массива
У меня есть массив:
array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
Я хотел бы получить первый элемент этого массива. Ожидаемый результат: строка apple
.
Одно из требований: это не должно быть сделано с помощью передачи по ссылке, поэтому array_shift
не подойдет.
Как я могу это сделать?
5 ответ(ов)
Ответ оригинальный, но затратный (O(n)):
array_shift(array_values($array));
Если вам нужно сделать это за O(1):
array_pop(array_reverse($array));
Другие варианты использования и т.д.
Если модификация массива (в смысле сброса указателей массива) не является проблемой, вы можете использовать:
reset($array);
Это должно быть теоретически более эффективно. Если требуется "копия" массива, можно использовать:
array_shift(array_slice($array, 0, 1));
С PHP 5.4+ (но это может привести к ошибке индекса, если массив пуст):
array_values($array)[0];
Вы можете получить значение и ключ первого элемента массива в PHP с помощью функций reset()
и key()
. Вот пример кода:
$first_value = reset($array); // Получаем значение первого элемента
$first_key = key($array); // Получаем ключ первого элемента
Функция reset()
перемещает внутренний указатель массива на первый элемент и возвращает его значение. Функция key()
возвращает ключ текущего элемента массива, который после вызова reset()
будет первым элементом. Убедитесь, что массив не пустой перед вызовом этих функций, чтобы избежать неожиданных результатов.
Если вы не хотите потерять текущее положение указателя в массиве, просто создайте его alias (псевдоним). Вот пример:
$arr = $array = array( 9 => 'apple', 7 => 'orange', 13 => 'plum' );
$alias = &$array; // Создаем псевдоним для массива
echo reset($arr); // выводит 'apple'
echo $alias[7]; // Выводит 'orange', указатель в $arr не изменился
Таким образом, используя псевдоним $alias
, можно долго работать с исходным массивом $array
, не меняя позицию указателя в оригинальном массиве $arr
.
Вы можете получить N-ый элемент массива с помощью конструкции языка list
:
// Первый элемент
list($firstItem) = $yourArray;
// Первый элемент из массива, который возвращает функция
list($firstItem) = functionThatReturnsArray();
// Второй элемент
list( , $secondItem) = $yourArray;
С помощью функции array_keys
вы можете сделать то же самое для ключей:
list($firstKey) = array_keys($yourArray);
list( , $secondKey) = array_keys($yourArray);
Эти методы позволяют удобно извлекать нужные элементы и ключи из массива.
Чтобы получить первое значение массива $array
в PHP 5.4 и выше, вы можете использовать функцию array_values
, которая возвращает все значения массива в виде нового массива. Затем вы можете обратиться к первому элементу этого массива, используя индекс [0]
. Вот так это выглядит:
$firstValue = array_values($array)[0];
Имейте в виду, что если в массиве $array
нет значений, это приведет к ошибке доступа к несуществующему индексу. Чтобы избежать этого, вы можете проверить, не пустой ли массив перед попыткой получить первое значение:
$firstValue = !empty($array) ? array_values($array)[0] : null;
В этом примере, если массив пустой, в переменной $firstValue
будет null
.
Удаление элемента из массива в PHP
Сортировка двумерного массива по значению в столбце
Преобразование объекта PHP в ассоциативный массив
Удалить пустые элементы массива
PHP: Удаление элемента массива по значению (а не по ключу)