Как указать на первый элемент массива?
Вопрос до боли простой и я чувствую, что я близко, но втупился в монитор и хожу вокруг да около. Нужно, что б 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
- array_key_first
- 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