Справочник по PHP


Курсор массива


reset

Производит сброс курсора массива.

Синтаксис :

mixed reset(array arr);

Функция reset() устанавливает внутренний курсор массива arr на его начало и возвращает значение начального элемента.

end

Производит перенос курсора в конец массива.

Синтаксис :

mixed end(array arr);

Функция end() устанавливает внутренний курсор массива arr на последний элемент и возвращает значение начального элемента.

next

Производит перенос курсора вперед.

Синтаксис :

mixed next(array arr);

Функция next() возвращает значение элемента, на котором в данный момент находится курсор, и перемещает курсор массива на следующий элемент. Возвращает false, если элементов больше не осталось.

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

prev

Производит перенос курсора назад.

Синтаксис :

mixed prev(array arr);

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

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

current

Определение текущего элемента массива.

Синтаксис :

mixed current(array arr);

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

Функция возвратит false, если курсор оказался вне пределов массива, или массив не имеет элементов.

pos

Определение текущего элемента массива.

Синтаксис :

mixed pos(array arr);

Эта функция синоним функции current().

key

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

Синтаксис :

mixed key(array arr);

each

Получение текущего элемента массива.

Синтаксис :

array each(array arr);


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

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

Функция возвращает false, если курсор достиг конца массива.

$foo = array("bob", "fred", "jussi", "joini", "egon", "marliese");$bar = each($foo);// теперь $bar = (0=>0, 1=>"bob", key=>0, value=>"bob")

Обычно функцию each() используют в паре с list() для перебора элементов массива:

reset($HTTP_POST_VARS);while(list($key, $val) = each($HTTP_POST_VARS)) {  echo "$key = %val<BR>";}

array_walk

Применение функции к элементам массива.

Синтаксис :

int array_walk(array arr string func, mixed userdata);

Функция array_walk() применяет пользовательскую функцию func к каждому элементу массива arr. В пользовательскую функцию передаются три или два (в случае, если аргумент userdata не указан) аргумента: значение текущего элемента, его индекс и аргумент userdata.

В случае, если func требует более трех аргументов, при каждом ее вызове будет выдаваться предупреждение. Чтобы блокировать выдачу этих предупреждений, поставте знак "@" перед функцией array_walk() или воспользуйтесь функцией error_reporting().

Функция func будет получать значения и индексы массива arr по занчению, т.е. не сможет вносить в него изменения. Если это необходимо, передайте аргумент arr по ссылке, указав перед его именем "&", и тогда все изменения отразяться в массиве.

В PHP 4 необходимо явно вызывать функцию reset(), чтобы установить внутренний курсор на первый элемент.

$v = array("d"=>"A1", "a"=>"B2", "b"=>"C3", "c"=>"D4");function test_alter(&$item1, $key, $prefix) { // по ссылке  $item1 = "$prefix $item1";}; function test_print($item2, $key) {  echo "$key. $item2<BR>";}; array_walk($v, "test_print");reset($v);array_walk($v, "test_alter");reset($v);array_walk($v, "test_print");


Содержание раздела