к оглавлению

Работа с курсором (указатель) массива

end() 
next() 
prev() 
current() 
key() 
each() 

О функции reset() мы с вами уже говорили. Напомним, что эта функция производит сброс курсора массива, т.е. устанавливает внутренний курсор массива на начало массива и возвращает значение первого элемента.

Функция end() выполняет действие, обратное функции reset() – переносит курсор в конец массива. Синтаксис функции аналогичен синтаксису функции reset():

end()

Синтаксис:

mixed end(array array arr)

next()

Функция next() производит перенос курсора массива вперед на одну позицию.

Синтаксис:

mixed next(array array arr)

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


prev()

Функция prev() производит перенос курсора назад на одну позицию. Синтаксис и работа функции полностью аналогичны функции next().

Синтаксис:

mixed prev(array array arr)

current()

Для определения текущего элемента массива, без изменения положения курсора, используется функция current().

Синтаксис:

mixed current(array array arr)

Функция current() возвращает значение элемента, на котором в данный момент находится курсор массива, при этом не сдвигая курсор. В том случае, если курсор оказался за пределами массива, или массив состоит из пустых элементов, функция возвратит false.

Полным синонимом функции current() является функция pos().


key()

Функция key() возвращает индекс текущего элемента массива.

Синтаксис:

mixed key(array array arr)

Ну а теперь поговорим об обещанной функции each().

each()

Синтаксис:

array each(array array arr)

Функция each() возвращает пару "индекс - значение" текущего элемента массива и сдвигает курсор массива на следующий элемент. При этом, как видно, функция возвращает массив, причем он имеет четыре элемента:

  1. [1] => "значение"
  2. [value] => "значение"
  3. [0] => индекс
  4. [key] => индекс

Если курсор достиг конца массива, функция возвращает false. Посмотрим, как работает эта функция:

Пример:

<?php
   $name = array("maks", "igor", "sergey");
   $each_name = each($name);
   print_r($each_name);
   echo("<br>");
   $each_name = each($name);
   print_r($each_name);
   echo("<br>");
   $each_name = each($name);
   print_r($each_name);
?>
И что мы получили:

Результат:

Array ( [1] => maks [value] => maks [0] => 0 [key] => 0 )
Array ( [1] => igor [value] => igor [0] => 1 [key] => 1 )
Array ( [1] => sergey [value] => sergey [0] => 2 [key] => 2 )

Функцию each() можно использовать в паре с функцией list() для перебора элементов массива. К примеру, вот так:

Пример:

<?php
   $name = array("maks", "igor", "sergey");
   reset($name);
   while(list($key, $val) = each($name))
   {
      echo ("$key = $val<br>");
   }
?>
И вот что на выходе:

Результат:

0 = maks
1 = igor
2 = sergey
к оглавлению

Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 23.02.2020 - 19:17: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
23.02.2020 - 19:14: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
23.02.2020 - 19:10: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
22.02.2020 - 07:52: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Ю.Ю. Болдырева - Карим_Хайдаров.
19.02.2020 - 18:24: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Фурсова - Карим_Хайдаров.
17.02.2020 - 19:50: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Эксперименты Сёрла и его последователей с магнитами - Карим_Хайдаров.
17.02.2020 - 19:49: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Тиртхи - Карим_Хайдаров.
17.02.2020 - 19:13: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> КОЛЛАПС МИРОВОЙ ФИНАНСОВОЙ СИСТЕМЫ - Карим_Хайдаров.
17.02.2020 - 19:09: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Вихревые эффекты и вихревые теплогенераторы - Карим_Хайдаров.
17.02.2020 - 19:06: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Эксперименты Андрея Петровича Хрищановича - Карим_Хайдаров.
17.02.2020 - 18:48: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
17.02.2020 - 18:47: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ЗА НАМИ БЛЮДЯТ - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution