PHP में usort() फ़ंक्शन एक सरणी को उपयोगकर्ता-परिभाषित तुलना फ़ंक्शन (user-defined comparison function) के आधार पर मानों द्वारा सॉर्ट करता है। यह सरणी के की-मान संबंध को नहीं बनाए रखता (कीज रीइंडेक्स हो जाती हैं)।
सिंटैक्स (Syntax)
usort(array &$arr, callable $callback): bool
पैरामीटर्स (Parameters)
$arr − सॉर्ट की जाने वाली सरणी (रेफरेंस द्वारा पास की जाती है)।
$callback − तुलना फ़ंक्शन जो दो तर्क स्वीकार करता है और निम्न लौटाता है:
0यदि दोनों बराबर हैं< 0यदि पहला तर्क दूससे छोटा है> 0यदि पहला तर्क दूसरे से बड़ा है
रिटर्न वैल्यू (Return Value)
सफलता पर true, विफलता पर false लौटाता है।
उदाहरण (Examples)
उदाहरण 1: संख्याओं को आरोही क्रम में सॉर्ट करना
<?php
function compare($a, $b) {
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
$numbers = array(39, 23, 78, 55, 99, 120);
usort($numbers, "compare");
foreach ($numbers as $num) {
echo $num . "
";
}
?>
आउटपुट
23 39 55 78 99 120
उदाहरण 2: अवरोही क्रम में सॉर्ट करना (स्पेसशिप ऑपरेटर के साथ PHP 7+)
<?php $numbers = array(39, 23, 78, 55, 99, 120); usort($numbers, fn($a, $b) => $b <=> $a); print_r($numbers); ?>
आउटपुट
Array
(
[0] => 120
[1] => 99
[2] => 78
[3] => 55
[4] => 39
[5] => 23
)
उदाहरण 3: ऑब्जेक्ट्स की सरणी को सॉर्ट करना
<?php
class Student {
public $name;
public $marks;
public function __construct($name, $marks) {
$this->name = $name;
$this->marks = $marks;
}
}
$students = [
new Student("Amit", 85),
new Student("Priya", 92),
new Student("Rahul", 78)
];
usort($students, fn($a, $b) => $b->marks <=> $a->marks);
foreach ($students as $s) {
echo "{$s->name}: {$s->marks}
";
}
?>
आउटपुट
Priya: 92 Amit: 85 Rahul: 78