PHP.mk документација

uasort

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.uasort.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.uasort.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
uasort

Референца за `function.uasort.php` со подобрена типографија и навигација.

function.uasort.php

uasort

(PHP 4, PHP 5, PHP 7, PHP 8)

uasortСортирај низа со кориснички дефинирана функција за споредба и одржи асоцијација на индекс

= NULL

uasort(array &$array, callable $callback): true

Сортира array на место така што неговите клучеви ја одржуваат својата корелација со вредностите со кои се поврзани, користејќи кориснички дефинирана функција за споредба.

Ова се користи главно при сортирање на асоцијативни низи каде што реалниот редослед на елементите е значаен.

Забелешка:

Ако два члена се споредат како еднакви, тие го задржуваат својот оригинален редослед. Пред PHP 8.0.0, нивниот релативен редослед во сортираната низа беше недефиниран.

Забелешка:

Ги ресетира внатрешниот покажувач на низата на првиот елемент.

Параметри

array

Влезната низа.

callback

Функцијата за споредба мора да врати цел број помал, еднаков или поголем од нула ако првиот аргумент се смета за помал, еднаков или поголем од вториот, соодветно.

callback(mixed $a, mixed $b): int
Безбедност: стандардниот сет на знаци

Враќање non-integer вредности од функцијата за споредба, како што се floatќе резултира со внатрешно префрлање во int на вратената вредност на повиканата функција. Така вредности како 0.99 and 0.1 ќе бидат префрлени во цел број од 0, што ќе ги спореди таквите вредности како еднакви.

Вратени вредности

Секогаш враќа true.

Дневник на промени

Верзија = NULL
8.2.0 Типот на враќање е true сега; претходно, беше bool.
8.0.0 Враќа callback очекува параметар да биде предаден со референца, оваа функција сега ќе емитува E_WARNING.

Примери

Пример #1 Основен uasort() example

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

// Array to be sorted
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);

// Sort and print the resulting array
uasort($array, 'cmp');
print_r($array);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Види Исто така

Белешки од корисници 4 белешки

magikMaker
пред 15 години
a quick reminder on the syntax if you want to use uasort in a Class or Object:

<?php

// procedural:
uasort($collection, 'my_sort_function');

// Object Oriented
uasort($collection, array($this, 'mySortMethod'));

// Objet Oriented with static method
uasort($collection, array('self', 'myStaticSortMethod'));

?>
yannick dot battail at gmail dot com
пред 15 години
An Example using anonymous function.
Anonymous functions make some time the code easier to understand.
<?php
$fruits = array('Orange9','Orange11','Orange10','Orange6','Orange15');
uasort ( $fruits , function ($a, $b) {
            return strnatcmp($a,$b); // or other function/code
        }
    );
print_r($fruits);
?>
returns
Array
(
    [3] => Orange6
    [0] => Orange9
    [2] => Orange10
    [1] => Orange11
    [4] => Orange15
)
php at eden2 dot com
пред 22 години
Is it just me, or are the examples below misleading, and actually demonstrating situations that would be more appropriate for usort()?

After trying to make sense of the uasort() description, it sounds like it's more for sorting a 1D array like this:

"john" => "$23.12"
"tim" => "$6.50"
"bob" => "$18.54"

and getting back:

"tim" => "$6.50"
"bob" => "$18.54"
"john" => $23.12"

(assuming, of course, that your sort function is lopping off the $ and evaluating as a number -- which would complicate the use of asort() ;)
raveren at gmail dot com
пред 1 година
Since php7.0 you can replace this boilerplate

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

with the spaceship operator:
https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.spaceship-op

    return $a <=> $b;
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.