Перейти к содержимому

Как вывести первый элемент массива

  • автор:

Как указать на первый элемент массива?

Вопрос до боли простой и я чувствую, что я близко, но втупился в монитор и хожу вокруг да около. Нужно, что б cout выводил «Yes», если это первый элемент и «No», если это какой то другой. Знаю, что в if должно быть по-другому описано, но я просто не знаю как описать это.

#include using namespace std; int main() < int _size; cin >> _size; int* tab = new int [_size]; int number; for(int i=0;i<_size;i++)< cin >> number; tab[i] = number; > for(int i=0; i > 

Отслеживать
задан 6 дек 2016 в 21:45
35 1 1 золотой знак 1 1 серебряный знак 6 6 бронзовых знаков
Ну, не if(tab[0]) , а if (i == 0)
6 дек 2016 в 22:03
Спасибо вам огромное
6 дек 2016 в 22:08
А память освобождать кто будет ? Страуструп ?
6 дек 2016 в 22:34

@isnullxbh, в данном примере, коль выделяем под массив POD, «освобождение» нужно — если только для эстетики. Тут (ru.stackoverflow.com/questions/420070/…) хорошее обсуждение.

6 дек 2016 в 23:02

Чисто придирки ради — не используйте первым символом подчеркивание в именах ( _size ) — это зарезервировано за компилятором.

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

Если массив нумерованный, т.е. индексы от 0 до N, можно обратиться по индексу элемента и распечатать с помощью print_r. Начиная с 7.3 версии можно получить ключ первого элемента с помощью array_key_first

$a = [1, 2, 3, 4]; print_r($a[0]); # => 1 $firstKey = array_key_first($numWords); print_r($firstKey); # => "zero" print_r($numWords[$firstKey]); # => 0 

Как получить первый элемент массива в 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

  1. array_key_first
  2. array_key_last

Ответ 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 и нужно получить первый элемент этого массива.

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

$first = $arr[0];

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

Способ 1

$first = reset($arr);

Используя 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().

$first = array_shift($arr);

Способ 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, за этот способ.

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

Свежие записи

  • SQL UPDATE: примеры обновления строк в таблице
  • PHP: substr и мощные альтернативы, чтобы вырезать часть строки
  • Степень в C, C++ и С#: как возвести число в любую степень, побитовые операции
  • Скачать ShowKeyPlus: ссылка на последнюю официальную версию, скачивание, установка
  • Как создать файл в Linux: 12 способов
  • SQL INSERT INTO: примеры вставки строк в таблицу БД MySQL
  • PHP: str_replace — замена или удаление подстроки в строке
  • Функция date() в php: распространенные форматы, примеры, советы
  • cURL в PHP: примеры POST, GET запросов с headers, cookie, JSON и многопоточностью
  • JSON в PHP: примеры json_encode, json_decode, работа с кириллицей и utf-8
  • Файл gitignore — примеры и документация
  • Сортировка массивов в php: ksort, asort и прочие sort’ы
  • jQuery onclick: как выполнить код при клике на кнопку
  • 500 Internal Server Error — в чем причина?
  • SMTP от Yandex: как отправить письма из PHP — пример настроек
  • No such file or directory — в чем причина?
  • Как получить первый элемент массива в php
  • Cтроку в массив по разделителю в PHP: explode, str_split, strtok — что выбрать?
  • 301 редирект на https с www через htaccess
  • Как в php добавить к массиву другой массив?
  • 301 редирект на https без www с помощью htaccess
  • Регулярные выражения в PHP
  • PHP json_decode — как декодировать результат в массив?
  • Yii2 ActiveRecord шпаргалка по составлению запросов
  • Поиск подстроки в строке с помощью PHP
  • Отправка почты на php
  • Как подключить php код в html
  • Конвертировать массив в строку при помощи PHP
  • Подключение одного php файла в другой
  • Подборка ссылок для веб-разработчика
  • Проблема с кириллицей в PHPWord

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *