PHP 8.4.2 Released!

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uasortSort the entries with a user-defined comparison function and maintain key association

Açıklama

public ArrayObject::uasort(callable $callback): true

This function sorts the entries such that keys maintain their correlation with the entry that they are associated with, using a user-defined comparison function.

This is used mainly when sorting associative arrays where the actual element order is significant.

Bilginize:

İki üye karşılaştırıldığında eşitse bunların özgün sıralamadaki yerleri korunur. PHP 8.0.0 öncesinde sıralı dizideki göreli yerleri tanımsızdı.

Bağımsız Değişkenler

callback

Karşılaştırma işlevinin, ilk bileşeninin ikinci bileşenden küçük, eşit veya büyük olması durumunda sıfırdan küçük, eşit veya büyük bir tamsayı döndürmesi gerekir.

callback(mixed $a, mixed $b): int
Dikkat

Karşılaştırma işlevinden float gibi tamsayı olmayan değerlerin döndürülmesi, geri çağırım işlevinin dönüş değerinin dahili olarak int türüne dönüştürülmesiyle sonuçlanır. Bu nedenle 0.99 ve 0.1 gibi değerlerin her ikisi de 0 tamsayı değerine dönüştürüp bunlar eşit değerler olarak karşılaştırılacaktır.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
8.2.0 Dönüş türü artık true;evvelce, bool idi.

Örnekler

Örnek 1 ArrayObject::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);
$arrayObject = new ArrayObject($array);
var_dump($arrayObject);

// Sort and print the resulting array
$arrayObject->uasort('cmp');
var_dump($arrayObject);
?>

Yukarıdaki örneğin çıktısı:

object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  array(8) {
    ["a"]=>
    int(4)
    ["b"]=>
    int(8)
    ["c"]=>
    int(-1)
    ["d"]=>
    int(-9)
    ["e"]=>
    int(2)
    ["f"]=>
    int(5)
    ["g"]=>
    int(3)
    ["h"]=>
    int(-4)
  }
}
object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  array(8) {
    ["d"]=>
    int(-9)
    ["h"]=>
    int(-4)
    ["c"]=>
    int(-1)
    ["e"]=>
    int(2)
    ["g"]=>
    int(3)
    ["a"]=>
    int(4)
    ["f"]=>
    int(5)
    ["b"]=>
    int(8)
  }
}

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

up
1
poxetinho at gmail dot com
13 years ago
Note that return values between (-1, 1) are being considered as 0.
To Top