П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 185995 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 87302 раз(а).

Учебник HTML.
Просмотров 79558 раз(а).

Руководство по PHP5.
Просмотров 50066 раз(а).

Хостинг через призму DNS.
Просмотров 57765 раз(а).

Подборка текстов стандартных документов.
Просмотров 49103 раз(а).

Учебник PHP - Самоучитель
Просмотров 55917 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 57265 раз(а).

Внешние атаки...
Просмотров 46601 раз(а).

Учебник PHP.
Просмотров 41001 раз(а).

SSI в примерах.
Просмотров 31282 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство по PHP
Пред. След.

usort

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

usort --  Отсортировать массив по значениям используя пользовательскую функцию для сравнения элементов

Описание

bool usort ( array &array, callback cmp_function )

Эта функция сортирует элементы массива, используя для сравнения значений пользовательскую функцию. Если вам нужно отсортировать массив по необычному критерию, вы должны использовать эту функцию.

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

Замечание: Если два элемента исходного массива равны, их порядок в отсортированном массиве неопределён. До PHP 4.0.6 пользовательские функции сохраняли для таких элеменов порядок в оригинальном массиве, но новый алгоритм сортировки, появившейся в версии 4.1.0 больше не использует это решение и не имеет другого эффективного.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования usort()

<?php
function cmp($a, $b)
{
    if (
$a == $b) {
        return
0;
    }
    return (
$a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

while (list(
$key, $value) = each($a)) {
    echo
"$key: $value
"
;
}
?>

Результат выполнения данного примера:

0: 1
1: 2
2: 3
3: 5
4: 6

Замечание: Очевидно, что для этого тривиального случая более подходит функция sort().

Пример 2. Пример использования функцией usort() многомерных массивов

<?php
function cmp($a, $b)
{
    return
strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list(
$key, $value) = each($fruits)) {
    echo
"\$fruits[$key]: " . $value["fruit"] . "
"
;
}
?>

При сортировке многомерного массива переменные $a и $b содержат ссылки на первые два индекса массива.

Результат выполнения данного примера:

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Пример 3. Пример использования usort() с методом класса

<?php
class TestObj {
    var
$name;

    function
TestObj($name)
    {
        
$this->name = $name;
    }

    
/* This is the static comparing function: */
    
function cmp_obj($a, $b)
    {
        
$al = strtolower($a->name);
        
$bl = strtolower($b->name);
        if (
$al == $bl) {
            return
0;
        }
        return (
$al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach (
$a as $item) {
    echo
$item->name . "
"
;
}
?>

Результат выполнения данного примера:

b
c
d

См. также uasort(), uksort(), sort(), asort(), arsort(),ksort(), natsort() и rsort().


Пред. Начало След.
uksort Уровень выше Aspell functions [deprecated]


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru