Справочник по PHP : Функции работы с данными : Работа с массивами : Курсор массива

Материал из Справочник Web-языков.

Перейти к: навигация, поиск
Главная  ::. PHP  ::. Функции работы с данными  ::. Работа с массивами  ::. Курсор массива

Содержание

[править] reset

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

Синтаксис:

mixed reset(array arr)

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

Пример использования функции reset():

<?php
$array 
= array("step one""step two""step three""step four");
  
// by default, the pointer is on the first element  
echo current($array) . "<br />n"// "step one"

// skip two steps    
next($array);                                 
next($array);
echo 
current($array) . "<br />n"// "step three"
  
// reset pointer, start again on step one
reset($array);
echo 
current($array) . "<br />n"// "step one"
?>

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] end

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

Синтаксис:

mixed end(array arr)

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

Пример использования функции end():

<?php
$fruits 
= array("apple""banana""cranberry");
echo 
end($fruits); // cranberry
?>

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] next

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

Синтаксис:

mixed next(array arr)

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

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

Пример использования функции next():

<?php
$transport 
= array("foot""bike""car""plane");
$mode current($transport); // $mode = "foot";
$mode next($transport);    // $mode = "bike";
$mode next($transport);    // $mode = "car";
$mode prev($transport);    // $mode = "bike";
$mode end($transport);     // $mode = "plane";
?>

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] prev

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

Синтаксис:

mixed prev(array arr)

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

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

Пример использования функции prev():

<?php
$transport 
= array("foot""bike""car""plane");
$mode current($transport); // $mode = "foot";
$mode next($transport);    // $mode = "bike";
$mode next($transport);    // $mode = "car";
$mode prev($transport);    // $mode = "bike";
$mode end($transport);     // $mode = "plane";
?>

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] current

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

Синтаксис:

mixed current(array arr)

Каждый массив имеет внутренний указатель(курсор) текущего элемента. Обычно он указывает на первый элемент массива.

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

Если указатель находиться за пределами массива, или массив пустой, то функция возвратит FALSE.

Пример использования функции current():

<?php
$transport 
= array("foot""bike""car""plane");
$mode current($transport); // $mode = "foot";
$mode next($transport);    // $mode = "bike";
$mode current($transport); // $mode = "bike";
$mode prev($transport);    // $mode = "foot";
$mode end($transport);     // $mode = "plane";
$mode current($transport); // $mode = "plane";
?>

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] pos

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

Синтаксис:

mixed pos(array arr)

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

[править] key

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

Синтаксис:

mixed key(array arr)

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

Пример использования функции key():

<?php
$array 
= array(
    
"fruit1" => "apple",
    
"fruit2" => "orange",
    
"fruit3" => "grape",
    
"fruit4" => "apple",
    
"fruit5" => "apple");

// этот цикл пройдется по всему массиву
// и выведет имя ключа элемента массива
// значение которого равно "apple"

while ($fruit_name current($array)) {
    if (
$fruit_name == "apple") {
        echo 
key($array)."*<br />";
    }
    
next($array);
}
?>

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] each

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

Синтаксис:

array each(array arr)

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


Пример использования функции each():

<?php
$foo 
= array("bob""fred""jussi""jouni""egon""marliese");
$bar each($foo);
print_r($bar);
?>

Массив $bar будет иметь ключи и значения:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)
<?php
$foo 
= array("Robert" => "Bob""Seppo" => "Sepi");
$bar each($foo);
print_r($bar);
?>

Массив $bar будет иметь ключи и значения:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

Пример использования функции each():

Пролистывание массива

<?php
$fruit 
= array("a" => "apple""b" => "banana""c" => "cranberry");

reset($fruit);
while (list(
$key$val) = each($fruit)) {
    echo 
"$key => $valn";
}
?>

Пример выведет:

a => apple
b => banana
c => cranberry

Функция поддерживается PHP 3, PHP 4, PHP 5

[править] array_walk

Применение пользовательской функции к элементам массива.

Синтаксис:

bool array_walk(array arr, callback function [, mixed userdata])

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

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

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

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

Пример использования функции array_walk():

<?php
$fruits 
= array("d" => "lemon""a" => "orange""b" => "banana""c" => "apple");

function 
test_alter(&$item1$key$prefix
{
    
$item1 "$prefix: $item1";
}

function 
test_print($item2$key
{
    echo 
"$key. $item2<br />n";
}

echo 
"Before ...:n";
array_walk($fruits"test_print");

array_walk($fruits"test_alter""fruit");
echo 
"... and after:n";

array_walk($fruits"test_print");
?>

Приведенный пример выведет следующее:

Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Функция поддерживается PHP 3 >= 3.0.3, PHP 4, PHP 5

Личные инструменты

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/toplevels/data/www/maripoza.ru/fc7a82cd8e0116192ce432b06b9bd9c9/sape.php on line 219

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/toplevels/data/www/maripoza.ru/fc7a82cd8e0116192ce432b06b9bd9c9/sape.php on line 225
2.17270898819