പിഎച്ച്പിയിലെ ഒരു സങ്കീർണ്ണമായ ഡാറ്റാ ഘടനയാണ് അറേകൾ, അത് ഒരു വേരിയബിളിൽ നിരവധി മൂല്യങ്ങൾ സംഭരിക്കാനും നിയന്ത്രിക്കാനും ഡവലപ്പർമാരെ പ്രാപ്തമാക്കുന്നു. അടിസ്ഥാന അറേ പ്രവർത്തനങ്ങൾക്ക് പുറമേ അറേകൾ അടുക്കുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള രീതികളുടെ ഒരു ശേഖരം PHP ഉൾക്കൊള്ളുന്നു. ഈ പോസ്റ്റിൽ, PHP 8-ൽ ലഭ്യമായ ഏറ്റവും സാധാരണമായ PHP അറേ സോർട്ടിംഗ് ഫംഗ്ഷനുകൾ ഞങ്ങൾ നോക്കും.
സോർട്ടിംഗ് ഫംഗ്ഷനുകൾ
അറേകൾ അടുക്കുന്നതിന് PHP നിരവധി ബിൽറ്റ്-ഇൻ ഫംഗ്ഷനുകൾ നൽകുന്നു, ഇനിപ്പറയുന്നവ ഉൾപ്പെടെ:
അടുക്കുക ()
ദി അടുക്കുക() രീതി അറേ അംഗങ്ങളെ ആരോഹണ ക്രമത്തിൽ ക്രമീകരിക്കുന്നു. അറേയിൽ ഒരു ഘടകം മാത്രമേ ഉള്ളൂ എങ്കിൽ, അത് അതേ അറേ നൽകുന്നു. വിജയിക്കുമ്പോൾ അത് ശരിയാകും. മറ്റെല്ലാ സാഹചര്യങ്ങളിലും ഇത് തെറ്റായി നൽകുന്നു.
$numbers = array(4, 8, 12, 16, 20);
sort($numbers);
print_r($numbers); // [4, 8, 12, 16, 20]
rsort()
ദി rsort()
ഫംഗ്ഷൻ വിപരീതമാണ് sort()
പ്രവർത്തനം. ഇത് ഒരു ശ്രേണിയുടെ ഘടകങ്ങളെ അവരോഹണ ക്രമത്തിൽ അടുക്കുന്നു.
Copy code$numbers = array(4, 16, 12, 20, 11);
rsort($numbers);
print_r($numbers); // [20, 16, 12, 11, 4]
തരം ()
ദി തരംതിരിക്കുക() ഒരു അസോസിയേറ്റീവ് അറേയിലെ അംഗങ്ങളെ ആരോഹണ ക്രമത്തിൽ അടുക്കാൻ രീതി മൂല്യങ്ങൾ ഉപയോഗിക്കുന്നു.
$fruits = array("apple" => "1", "pineapple" => "2", "orange" => "3");
asort($fruits);
print_r($fruits); // ["apple" => "1", "orange" => "3", "pineapple" => "2"]
ksort()
ദി ksort()
ഫംഗ്ഷൻ ഒരു അസോസിയേറ്റീവ് അറേയുടെ ഘടകങ്ങളെ ആരോഹണ ക്രമത്തിൽ ക്രമപ്പെടുത്തുന്നു കീകൾ.
$fruits = array("apple" => "1", "pineapple" => "2", "orange" => "3");
ksort($fruits);
print_r($fruits); // ["apple" => "1", "orange" => "3", "pineapple" => "2"]
ആയുധം()
ദി arsort()
ഫംഗ്ഷൻ ഒരു അസോസിയേറ്റീവ് അറേയുടെ മൂലകങ്ങളെ മൂല്യങ്ങൾക്കനുസരിച്ച് അവരോഹണ ക്രമത്തിൽ അടുക്കുന്നു.
$fruits = array("apple" => "1", "pineapple" => "2", "grapefruit" => "1");
arsort($fruits);
print_r($fruits); // ["grapefruit" => "1", "pineapple" => "2", "apple" => "1"]
മറ്റ് അറേ സോർട്ടിംഗ് പ്രവർത്തനങ്ങൾ
കൂടാതെ ആയുധം() ഫംഗ്ഷൻ, അറേകൾ അടുക്കുന്നതിന് PHP മറ്റ് നിരവധി ഫംഗ്ഷനുകളും നൽകുന്നു, ഇനിപ്പറയുന്നവ:
- krsort(): ഒരു അസോസിയേറ്റീവ് അറേ അതിന്റെ കീകൾക്കനുസരിച്ച് അവരോഹണ ക്രമത്തിൽ അടുക്കുന്നു
- ഉപയോഗിക്കുക(): ഉപയോക്തൃ-നിർവചിച്ച താരതമ്യ ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു അറേ അടുക്കുന്നു
- uasort(): ഉപയോക്തൃ-നിർവചിച്ച താരതമ്യ ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു അസോസിയേറ്റീവ് അറേ അടുക്കുന്നു, കീ-വാല്യൂ ജോഡികൾ സംരക്ഷിക്കുന്നു
- uksort(): ഒരു അസോസിയേറ്റീവ് അറേ അടുക്കുന്നു
ചോദ്യോത്തരങ്ങൾ
ചോദ്യം: അറേകൾക്കുള്ള PHP-യിലെ "sort", "rsort" ഫംഗ്ഷനുകൾ തമ്മിലുള്ള വ്യത്യാസം എന്താണ്?
A: "sort" ഫംഗ്ഷൻ ഒരു അറേയുടെ ഘടകങ്ങളെ ആരോഹണ ക്രമത്തിൽ അടുക്കുന്നു, അതേസമയം "rsort" ഫംഗ്ഷൻ ഘടകങ്ങളെ അവരോഹണ ക്രമത്തിൽ അടുക്കുന്നു.
ചോദ്യം: "അസോർട്ട്" ഫംഗ്ഷൻ "സോർട്ട്" ഫംഗ്ഷനിൽ നിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു?
A: "asort" ഫംഗ്ഷൻ, കീ-വാല്യൂ ബന്ധം സംരക്ഷിക്കുമ്പോൾ അവയുടെ മൂല്യങ്ങളെ ആശ്രയിച്ച് അറേ ഘടകങ്ങളെ അടുക്കുന്നു. നേരെമറിച്ച്, "സോർട്ട്" ഫംഗ്ഷൻ, ഇനങ്ങളെ അവയുടെ മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി അടുക്കുന്നു, എന്നാൽ ഇത് കീകൾ പുനഃക്രമീകരിക്കുകയും കീകളും മൂല്യങ്ങളും തമ്മിലുള്ള ബന്ധത്തെ തടസ്സപ്പെടുത്തുകയും ചെയ്യും.
ചോദ്യം: PHP-യിലെ "ksort" ഫംഗ്ഷൻ വിശദീകരിക്കാമോ?
A: "ksort" ഫംഗ്ഷൻ അറേ അംഗങ്ങളെ അവരുടെ കീകളെ ആശ്രയിച്ച് അടുക്കുന്നു. പ്രധാന മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി ഇനങ്ങൾ ആരോഹണ ക്രമത്തിൽ പുനഃക്രമീകരിക്കുന്നു.
ചോദ്യം: ഒരു അറേയെ കേസ്-ഇൻസെൻസിറ്റീവ് രീതിയിൽ അടുക്കാൻ എന്തെങ്കിലും വഴിയുണ്ടോ?
A: അതെ, നിങ്ങൾക്ക് SORT_FLAG_CASE ഫ്ലാഗ് ഉപയോഗിച്ച് "സോർട്ട്" അല്ലെങ്കിൽ "അസോർട്ട്" ഫംഗ്ഷൻ ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്: "sort($array, SORT_FLAG_CASE);"
ചോദ്യം: ഒബ്ജക്റ്റുകളുടെ ഒരു നിര അടുക്കാൻ നിങ്ങൾക്ക് “usort” ഫംഗ്ഷൻ ഉപയോഗിക്കാമോ?
A: അതെ, ഇനങ്ങളെ താരതമ്യം ചെയ്യുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ നൽകുന്നതിലൂടെ, ഒബ്ജക്റ്റുകളുടെ ഒരു നിര അടുക്കാൻ “usort” രീതി ഉപയോഗിച്ചേക്കാം. ഘടകങ്ങളുടെ ക്രമം തിരിച്ചറിയാൻ, കോൾബാക്ക് ഫംഗ്ഷൻ ഒരു നെഗറ്റീവ്, പൂജ്യം അല്ലെങ്കിൽ പോസിറ്റീവ് പൂർണ്ണസംഖ്യ നൽകണം.
ചോദ്യം: കീകൾ മാറ്റാതെ മൂല്യമനുസരിച്ച് നിങ്ങൾക്ക് ഒരു അസോസിയേറ്റീവ് അറേ അടുക്കാനാകുമോ?
A: അതെ, കീകൾ മാറ്റാതെ തന്നെ മൂല്യമനുസരിച്ച് ഒരു അസോസിയേറ്റീവ് അറേ അടുക്കാൻ നിങ്ങൾക്ക് "asort" ഫംഗ്ഷൻ ഉപയോഗിക്കാം.
വ്യായാമങ്ങൾ:
- നിങ്ങൾക്ക് എങ്ങനെയാണ് ആരോഹണ ക്രമത്തിൽ ഒരു അറേ അടുക്കാൻ കഴിയുക?
- നിങ്ങൾക്ക് എങ്ങനെ അവരോഹണ ക്രമത്തിൽ ഒരു അറേ അടുക്കാനാകും?
- ഒരു കീയുടെ മൂല്യമനുസരിച്ച് നിങ്ങൾക്ക് എങ്ങനെ അസോസിയേറ്റീവ് അറേകളുടെ ഒരു ശ്രേണി ക്രമീകരിക്കാനാകും?
- ഒബ്ജക്റ്റുകളുടെ ഒരു നിരയെ അവയുടെ പ്രോപ്പർട്ടികളിൽ എങ്ങനെ തരംതിരിക്കാം?
- സ്ട്രിംഗുകളുടെ ഒരു നിരയെ അക്ഷരമാലാക്രമത്തിൽ, കേസ്-ഇൻസെൻസിറ്റീവ് ആയി അടുക്കുന്ന ഒരു സ്ക്രിപ്റ്റ് എഴുതുക.
ഉത്തരങ്ങൾ:
- അടുക്കുക ($ അറേ);
- rsort($array);
- usort($array, function($a, $b) {$a['key'] <=> $b['key']; });
- usort($array, function($a, $b) {$a->property <=> $b->property; }) തിരികെ;
- usort($array, 'strcasecmp');
ഔദ്യോഗിക PHP അറേ പ്രവർത്തനങ്ങൾ സൂചന.