usort Bir diziyi kullanıcı tanımlı bir işlev kullanarak değerlerine göre sıralar &reftitle.description; trueusort arrayarray callablekarş_işlevi Bu işlev kullanıcı tarafından sağlanmış bir karşılaştırma işlevini kullanarak diziyi "değerlerine" göre sıralar. ¬e.sort-unstable; ¬e.no-key-association; &reftitle.parameters; dizi Sıralanacak dizi. karş_işlevi &sort.callback.description; &reftitle.returnvalues; &return.true.always; &reftitle.changelog; &Version; &Description; &return.type.true; &array.changelog.by-ref; &reftitle.examples; - <function>usort</function> örneği $değer) { echo "$anahtar: $değer\n"; } ?> ]]> &example.outputs; Dahili karşılaştırmayı daha da basitleştirmek için mekik işleci kullanılabilir. $b; } $a = array(3, 2, 5, 6, 1); usort($a, "cmp"); foreach ($a as $key => $value) { echo "$key: $value\n"; } ?> ]]> Açıkçası, bu örnek için sort işlevi daha uygun olurdu. - <function>usort</function> ve çok boyutlu dizi $değer) { echo "\$meyvalar[$anah]: " . $değer["meyva"] . "\n"; } ?> ]]> Bir çok boyutlu dizi sıralanırken $a ve $b dizinin ilk indisine gönderimleri içerir. &example.outputs; - Bir nesnenin üye yöntemini kullanan <function>usort</function> örneği isim = $isim; } /* Duruk karşılaştırma işlevi: */ static function nesne_karşılaştır($a, $b) { return strtolower($a->name) <=> strtolower($b->name); } } $a[] = new Deneme("c"); $a[] = new Deneme("b"); $a[] = new Deneme("d"); usort($a, [Deneme::class, "nesne_karşılaştır]); foreach ($a as $öğe) { echo $öğe->isim . "\n"; } ?> ]]> &example.outputs; - Çok boyutlu bir diziyi sıralamak için <link linkend="functions.anonymous">anonim işlevler</link> kullanılan <function>usort</function> örneği 'z', 'key_b' => 'c'); $array[1] = array('key_a' => 'x', 'key_b' => 'b'); $array[2] = array('key_a' => 'y', 'key_b' => 'a'); function build_sorter($key) { return function ($a, $b) use ($key) { return strnatcmp($a[$key], $b[$key]); }; } usort($array, build_sorter('key_b')); foreach ($array as $item) { echo $item['key_a'] . ', ' . $item['key_b'] . "\n"; } ?> ]]> &example.outputs; - Mekik işleci kullanılan <function>usort</function> örneği Mekik işleci, bileşik değerlerin doğrudan çok yönlü karşılaştırılmasını sağlar. Aşağıdaki örnekte, $people önce soyadına göre, ardından soyadı eşleşirse ada göre sıralayacaktır. 'Adam', 'last' => 'West']; $people[1] = ['first' => 'Alec', 'last' => 'Baldwin']; $people[2] = ['first' => 'Adam', 'last' => 'Baldwin']; function sorter(array $a, array $b) { return [$a['last'], $a['first']] <=> [$b['last'], $b['first']]; } usort($people, 'sorter'); foreach ($people as $person) { print $person['last'] . ', ' . $person['first'] . PHP_EOL; } ?> ]]> &example.outputs; &reftitle.seealso; uasort uksort &seealso.array.sorting;