← Back to PHP Course | Chapter 7: Arrays | Lesson 11 of 13

PHP Array Sorting

किसी array को sort करना classmates को height या name से line up करने जैसा है। PHP आपके लिए एक list को order में रख सकता है, सबसे छोटे से सबसे बड़े तक, सबसे बड़े से सबसे छोटे तक, या A से Z तक।
Syntax
php
sort($array);      // ascending values, reindexed
rsort($array);     // descending
asort($array);     // by value, keep keys
ksort($array);     // by key
arsort($array);
krsort($array);

Indexed Arrays Sort करना

sort() किसी indexed array की values को ascending order में reorder करता है और keys को 0 से re-index करता है, जो एक simple list के लिए वही है जो आप चाहते हैं लेकिन किसी associative array में किसी भी meaningful string keys को destroy कर देगा।

उदाहरण: Sorting Indexed Arrays

php
<?php
// Declare `$numbers` as an array: `[3, 1, 4, 1, 5]`
$numbers = [3, 1, 4, 1, 5];
// Call `sort($numbers)`
sort($numbers);
// Print a human-readable dump of `$numbers`
print_r($numbers);
?>

Value से Associative Arrays Sort करना

asort() और ksort() sort करते समय key-to-value associations preserve करते हैं: asort() value से sort करता है, ksort() key से sort करता है, दोनों original pairing को intact रखते हुए — तब ज़रूरी जब keys मायने रखती हों, जैसे usernames को scores से mapped।

उदाहरण: Sorting Associative Arrays by Value

php
<?php
// Declare `$scores` as an array: `["alice" => 90, "bob" => 75]`
$scores = ["alice" => 90, "bob" => 75];
// Call `asort($scores)`
asort($scores);
// Print a human-readable dump of `$scores`
print_r($scores);
// Call `ksort($scores)`
ksort($scores);
// Print a human-readable dump of `$scores`
print_r($scores);
?>

Key से Associative Arrays Sort करना

rsort(), arsort(), और krsort() क्रमशः sort(), asort(), और ksort() के descending-order counterparts हैं, किसी leaderboard पर सबसे पहले highest scores दिखाने जैसे tasks के लिए उपयोगी।

उदाहरण: Sorting Associative Arrays by Key

php
<?php
// Declare `$scores` as an array: `["alice" => 90, "bob" => 75, "carol" => 85]`
$scores = ["alice" => 90, "bob" => 75, "carol" => 85];
// Call `arsort($scores)`
arsort($scores);
// Print a human-readable dump of `$scores`
print_r($scores);
?>

usort से Custom Sorting

usort() आपको अपना खुद का comparison function supply करने देता है, उन cases के लिए sort order पर पूरा control देते हुए जिन्हें built-in functions handle नहीं कर सकते, जैसे associative arrays के किसी array को एक specific field से sort करना।

उदाहरण: Custom Sorting with usort

php
<?php
// Declare `$people` as an array: `[["name" => "Bob", "age" => 25], ["name" => "Alice", "age" => 30]]`
$people = [["name" => "Bob", "age" => 25], ["name" => "Alice", "age" => 30]];
usort($people, function ($a, $b) {
    // Return `$a["age"] <=> $b["age"]` from this function
    return $a["age"] <=> $b["age"];
});
// Print a human-readable dump of `$people`
print_r($people);
?>

Natural Order Sorting

PHP में sorting functions array को in place modify करते हैं और एक नई sorted array return करने के बजाय true/false return करते हैं, जो एक common gotcha है अगर आप उम्मीद करें कि $sorted = sort($array); काम करेगा — यह नहीं करता, sort($array) वह है जो आपको चाहिए।

उदाहरण: Natural Order Sorting

php
<?php
$numbers = [3, 1, 2];
sort($numbers); // modifies in place, returns true/false
print_r($numbers);
?>
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह उम्मीद करना कि किसी associative array पर sort इसकी keys रखेगा, जबकि sort उन्हें discard कर देता है; asort या ksort इस्तेमाल करें।
  2. sort($arr) को एक expression की तरह इस्तेमाल करना, जैसे $b = sort($a);, जबकि यह in place sort करता है और true return करता है।
  3. एक usort callback लिखना जो negative, zero या positive number के बजाय एक boolean return करता है।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.