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().