prev

(PHP 4, PHP 5, PHP 7)

prevПередвигает внутренний указатель массива на одну позицию назад

Описание

mixed prev ( array &$array )

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

prev() ведёт себя подобно next(), за исключением того, что она передвигает внутренний указатель массива на одну позицию назад, а не вперёд.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение массива, на которое ранее указывал внутренний указатель массива, или FALSE если больше элементов нет.

Примеры

Пример #1 Пример использования 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';
?>

Примечания

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Замечание: Вы не сможете различить начало массива от boolean элемента FALSE. Для корректного обхода массива, который может содержать элементы FALSE, смотрите функцию each().

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель

Коментарии

Here's a slight revision to xmlich02's backwards iteration example. The problem with his/her example is that it will halt if any of the array elements are boolean false, while this version will not.

<?php

end
($ar);
while ( !
is_null($key key($ar)) ) {
   
$val current($ar);
    echo 
"{$key} => {$val}\n";
   
prev($ar);
}

?>
2009-05-29 15:06:28
http://php5.kiev.ua/manual/ru/function.prev.html
Автор:
This function searches for the closest element in an array by key value, and returns the key/value pair, or false if not found.

<?php
function nearest($array$value$exact=false) {
       
// Initialize Variables
   
$next false;
   
$prev false;
   
$return false;
   
    if(!isset(
$array[$value]) && !$exact) {
       
// Insert element that doesn't exist so nearest can be found
       
$array[$value] = '-';
    }
   
    if(
$exact && isset($array[$value])) {
               
// If exact match found, and searching for exact (not nearest), return result.
       
$return = Array($value=>$array[$value]);
    } else {
           
// Sort array so injected record is near relative numerics
       
ksort($array); // Sort array on key

                // Loop through array until match is found, then set $prev and $next to the respective keys if exist
       
while ( !is_null($key key($array)) ) {
           
$val current($array);
            if(
$key == $value) {
               
prev($array); // Get entry before this one
               
$prev key($array);
               
next($array);         // Skip current entry as this was what we were looking for nearest to
               
next($array); // Get entry after this one
               
$next key($array);
                break;
            }
           
next($array);
        }

        if(
$prev && $next) {
            if((
$long $prev) > ($next $long)) {
                                 
// Previous is closer
               
$return = Array($prev=>$array[$prev]);
            } else {
                                 
// Next is closer
               
$return = Array($next=>$array[$next]);
            }
        } elseif (
$prev || $next) {
            if(
$prev) {
                                 
// Only Previous exists
               
$return = Array($prev=>$array[$prev]);
            } elseif (
$next) {
                                 
// Only Next exists
               
$return = Array($next=>$array[$next]);
            }
        }
    }

       
// Return resulting Array().   $return is false if nothing matches the closest conditions, or if exact is specified and key does not exist.       
   
return $return;
}
?>

Example usage (to lookup the closest color in an array)
<?php
$mycolors
= Array(
   
5001046=>'Abbey',
   
1774596=>'Acadia',
   
8171681=>'Acapulco',
   
6970651=>'Acorn',
   
13238245=>'Aero Blue',
   
7423635=>'Affair',
   
8803850=>'Afghan Tan',
   
13943976=>'Akaroa',
   
16777215=>'Alabaster',
   
16116179=>'Albescent White',
   
10176259=>'Alert Tan',
   
30371=>'Allports'
);

// Color to search for in Hex
$color 'C0C0C0';

// Convert Hex to Long to compare with array() keys
$colorlong base_convert($color,16,10);

// Check for an exact match
$result nearest($mycolors$colorlongtrue);
if(
$result) {
    echo 
"An exact match was found for #" $color " which is called '" $result[key($result)] . "'";
} else {
    echo 
"No exact match was found";
}

if(!
$result) {
   
// Check for closest match
   
$result nearest($mycolors$colorlongtrue);
    if(
$result) {
       
// Match found
       
echo "The closest match for #" $color " is #" base_convert(key($result),10,16) . " which is called '" $result[key($result)] . "'";
    } else {
       
// No match found
       
echo "No match was found for #" $color;
    } 
}
?>
2014-03-31 04:17:54
http://php5.kiev.ua/manual/ru/function.prev.html
Автор:
Function to get element in array, that goes previous your key or false if it not exeists or key doesn't isset in array.

<?php

function previousElement(array $array$currentKey)
{
    if (!isset(
$array[$currentKey])) {
        return 
false;
    }
   
end($array);
    do {
       
$key array_search(current($array), $array);
       
$previousElement prev($array);
    }
    while (
$key != $currentKey);

    return 
$previousElement;
}
2019-09-05 17:56:14
http://php5.kiev.ua/manual/ru/function.prev.html

    Поддержать сайт на родительском проекте КГБ