Php первый элемент массива именованного

Как получить первый элемент массива в PHP

У меня есть массив:

array( 4 => ‘apple’, 7 => ‘orange’, 13 => ‘plum’ )

Я хочу получить первый элемент этого массива. Ожидаемый результат:

строка apple

Одно требование: это невозможно сделать с передачей по ссылке , поэтому array_shift — это не очень хорошее решение.

Как я могу это сделать по-другому?

Ответ 1

Лучший ответ, но дорогостоящий (O (n)):

array_shift(array_values($array));

Для O(1):

array_pop(array_reverse($array));

Другие варианты использования

Если изменение (в смысле сброса указателей массивов) $array не является проблемой, вы можете использовать:

reset($array);

Теоретически это должно быть более эффективным, если требуется « копия » массива:

array_shift(array_slice($array, 0, 1));

Начиная с PHP 5.4+ (но может вызвать ошибку индекса, если массив пуст):

array_values($array)[0];

Ответ 2

С амый простой способ:

$arr = array( 4 => ‘apple’, 7 => ‘orange’, 13 => ‘plum’ )

echo reset($arr); // Echoes «apple»

Если вы хотите получить ключ: (выполните после сброса)

echo key($arr); // Echoes «4»

Из документации PHP :

reset() перематывает внутренний указатель массива на первый элемент и возвращает значение первого элемента массива или FALSE, если массив пуст.

Ответ 3

Ответ 5

Некоторые массивы не работают с такими функциями, как list, reset или current. Возможно, это « ненастоящие » массивы — частично реализующие ArrayIterator, например.

Если вы хотите вытащить первое значение независимо от массива, вы можете сократить итератор:

foreach($array_with_unknown_keys as $value) break;

Ваше значение будет доступно в $value, а цикл прервется после первой итерации. Это более эффективно, чем копирование потенциально большого массива в функцию типа array_unshift(array_values($arr)). Таким же образом можно получить ключ:

foreach($array_with_unknown_keys as $key=>$value) break;

Если вы вызываете эту функцию из функции — просто вернитесь раньше:

function grab_first($arr)

foreach($arr as $value) return $value;

>

Ответ 6

Из справочников Laravel:

function head($array)

return reset($array);

>

Массив передается в функцию по значению, функция reset() воздействует на внутренний указатель копии массива и не затрагивает исходный массив (обратите внимание, что она возвращает false, если массив пуст). Пример использования:

$data = [‘foo’, ‘bar’, ‘baz’];

current($data); // foo

next($data); // bar

head($data); // foo

next($data); // baz

Кроме того, вот альтернатива. Она совсем незначительно быстрее, но более интересна. Она позволяет легко изменить значение по умолчанию, если массив пуст:

function head($array, $default = null)

foreach ($array as $item)

return $item;

>

return $default;

>

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Как получить первый элемент массива в php

Итак, у нас есть массив $arr и нужно получить первый элемент этого массива.

Нельзя просто сделать так:

Элемент с индексом 0 может быть просто не определен. Например в случае если массив ассоциативный, либо мы сделали unset($arr[0]) .

Способ 1

Используя reset мы получаем первый элемент, однако есть один побочный эффект: указатель массива также сбрасывается на первый элемент. Хотя в принципе эта функция и предназначена для сброса указателя. Документация по функции reset().

Обратите внимание: если массив пустой reset() вернет false , и этот результат будет неотличим от случая, когда массив не пустой, но содержит false в качестве первого элемента.

$a = array(); $b = array(false, true, true); var_dump(reset($a) === reset($b)); //bool(true)

Способ 2

Можно воспользоваться функцией array_shift — она извлекает первый элемент и при этом удаляет его из переданного массива. Документация по array_shift().

Способ 3

Написать свою функцию для этих целей:

function array_first($array, $default = null) < foreach ($array as $item) < return $item; >return $default; >

Преимущество в том, что она не меняет исходный массив. Также вы можете передать параметр $default , который будет использоваться в качестве значения по умолчанию, если массив пустой.

Кстати во фреймворке Laravel эта функция уже определена и позволяет указать еще и callback, в который можно передать условие. Можно например взять первый элемент, который больше 10 или первый элемент, который не является числом.

Вот код более совершенной функции:

function array_first($array, callable $callback = null, $default = null) if (is_null($callback)) < if (empty($array)) < return $default instanceof Closure ? $default() : $default; >foreach ($array as $item) < return $item; >> foreach ($array as $key => $value) < if (call_user_func($callback, $value, $key)) < return $value; >> return $default instanceof Closure ? $default() : $default; >

Ее можно использовать например так:

$array = [100, 200, 300]; $first = array_first($array, function ($value, $key) < return $value >= 150; >); echo $first; // 200

Способ 4

Функция current() также пригодна для получения первого элемента массива.
Пример использования:

$transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot';

Точнее эта функция используется для возвращения элемента, на котором находится внутренний указатель массива. В большинстве случаев указатель на первом элементе, однако есть ситуации, когда может быть возвращен не первый элемент.

$transport = array('foot', 'bike', 'car', 'plane'); next($transport); // перемещаем указатель вперед (http://php.net/manual/ru/function.next.php) $mode = current($transport); // $mode = 'bike'; — т. е. вернулся уже второй элемент массива.

Спасибо комментатору Alexey Berlinskiy, за этот способ.

Если вы еще знаете способы получения первого элемента — пишите в комментариях.

Источник

Получить первое значение массива (PHP)

В каждом массиве PHP есть внутренний указатель на «текущий» элемент. И если не использовалась функция next() , то ее вызов вернет текущее значение массива, в данном случае первое. Если вызов функции next() , был осуществлен, то сперва нужно воспользоваться функцией reset() .

Функция array_shift()

Функция array_shift() извлекает первое значение массива и возвращает его.

Третий способ

Третий способ не самый лучший, но, если вы уверены что все ключи массива цифровые или вам неважны ключи, то способ тоже подойдет.

Категории

Читайте также

  • Получить последнее значение массива (PHP)
  • Получить первый элемент массива (JavaScript)
  • Случайный элемент массива (JavaScript)
  • Получить массив ключей (PHP)
  • Найти и удалить элемент массива (PHP)
  • Получить последовательность элементов массива (PHP)
  • Массив уникальных значений (JavaScript)
  • Умножить массив на число (PHP)
  • Как удалить элемент ассоциативного массива (JavaScript)
  • Ассоциативный массив в JavaScript
  • Преобразовать массив в объект (PHP)
  • Элементы массива в случайном порядке (PHP)

Комментарии

«Функция array_shift() извлекает последнее значение массива и возвращает его.»
array_shift() извлекает первое значение

Вход на сайт

Введите данные указанные при регистрации:

Социальные сети

Вы можете быстро войти через социальные сети:

Источник

Php первый элемент массива именованного

Для того, чтобы получить первую ячейку массива нам потребуется:

Сам массив, который мы прямо здесь и создадим:

Выведем через print_r print_r($my_array);

Применим к нашему выведенному массиву current($my_array) который вернет нам первую ячейку массива, здесь уже можно вывести с помощью echo:

Результат получения вывода первой ячейки массива с помощью current

Здесь мы наблюдаем вывод первой ячейки массива на экран:

Как получить и вывести первую ячейку массива по -> ключу

Если у массива не нарушены ключи, то первую ячейку массива можно получить по ключу со значением 0, поскольку ячейка, так же как и в выше идущем примере не является массивом, то тоже можно её вывести с помощью echo:

Результат вывода первой ячейки массива по ключу:

Как получить и вывести первую ячейку массива через -> цикл

Довольно странно получать первую ячейку массива в цикле, но здесь можно и нужно сделать поправочку на то, что используя массивы вам придется работать с ячейками! И плюс решается такой вопрос передачи значения из цикла в переменную и вывода её за пределами цикла

Пишем конструкцию цикла, путь это будет for:

Внутри цикла делаем условие, если это первая ячейка массива, то отправляем данное значение в переменную, и выведем за пределами цикла с помощью echo:

Еще один способ вывести первый элемент массива — это функция array_shift;

для того, чтобы получить первый элемент массива с помощью array_shift нам понадобится:

Массив, который уже выше мы использовали:

Далее применим функцию к данному массиву:

Источник

Читайте также:  Общая характеристика языка javascript
Оцените статью