- Как получить первый элемент массива в PHP
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 5
- Ответ 6
- Как получить первый элемент массива в php
- Способ 1
- Способ 2
- Способ 3
- Способ 4
- Получить первое значение массива (PHP)
- Функция array_shift()
- Третий способ
- Категории
- Читайте также
- Комментарии
- Вход на сайт
- Социальные сети
- Php первый элемент массива именованного
- Результат получения вывода первой ячейки массива с помощью current
- Как получить и вывести первую ячейку массива по -> ключу
- Результат вывода первой ячейки массива по ключу:
- Как получить и вывести первую ячейку массива через -> цикл
Как получить первый элемент массива в 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 нам понадобится:
Массив, который уже выше мы использовали:
Далее применим функцию к данному массиву: