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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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