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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство по 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