လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ USort function တွင် enonymous လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်နည်း။

PHP ၏ USort function တွင် enonymous လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-08-28

PHP ၏ USort function တွင် enonymous လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်နည်း။

PHP တွင် Usort () သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အဆိုပါ apport () function ကို၏ဒုတိယ pareter () function ကို) function ကို (များသောအားဖြင့်နှိုင်းယှဉ်ပါဝင်သော function) သည် callback function (များသောအားဖြင့်နှိုင်းယှဉ်ခြင်း function) ဖြစ်သည်။ sorting စည်းမျဉ်းစည်းကမ်းများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိစေလိုသည်ကိုထိန်းချုပ်ရန်ကျွန်ုပ်တို့သည်များသောအားဖြင့်အမည်မသိလုပ်ဆောင်မှုများကို callback function များကိုအသုံးပြုလေ့ရှိသည်။

1 ။ အဆိုပါ apport () function ကိုမိတ်ဆက်

USARS () function ကို arrays များကိုစီရန်နှင့်အသုံးပြုသူများအား sorting စည်းမျဉ်းများကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span>);
</span></span>
  • $ array sorted ခံရဖို့ array ဖြစ်ပါတယ်။

  • $ callback သည် callback function ကို parameters များအဖြစ်သတ်မှတ်ထားသည့် callback function ကိုဖြစ်သည်။ callback function သည်အောက်ပါစည်းမျဉ်းများကိုလိုက်နာသင့်သည်။

    • အကယ်. ပထမ ဦး ဆုံး element သည်ဒုတိယ element ထက်သေးငယ်ပါကအပျက်သဘောဆောင်သောနံပါတ်ကိုပြန်ပို့သည်။

    • အကယ်. ပထမ ဦး ဆုံး element သည်ဒုတိယ element ထက်ကြီးပါကအပြုသဘောဆောင်သောနံပါတ်ကိုပြန်ပို့သည်။

    • နှစ်ခုဒြပ်စင်တန်းတူဖြစ်လျှင် 0 ပြန်လာ 0 ။

2 ။ စိတ်ကြိုက်နှိုင်းယှဉ်အဖြစ်အမည်မသိလုပ်ဆောင်ချက်များကို

ကိစ္စများစွာတွင်ကျွန်ုပ်တို့သည်ခွဲစိတ်မှုတစ်ခုစီအတွက်လုပ်ဆောင်မှုတစ်ခုတည်းကိုသတ်မှတ်လိုကြသည်။ PHP သည်ဤလုပ်ငန်းစဉ်ကိုအမည်မသိလုပ်ဆောင်ချက်များ (ပိတ်ပစ်ဟုလည်းခေါ်) ကို အသုံးပြု. ရိုးရှင်းအောင်ခွင့်ပြုသည်။ အမည်မသိလုပ်ဆောင်ချက်များကိုသီးခြား function ကိုသီးခြားစီကြေငြာရန်မလိုအပ်ဘဲ calmback function များကို callback function များကိုတိုက်ရိုက်အသုံးပြုနိုင်သည်။

ဥပမာ - အမည်မသိ finks သုံး. သေးငယ်သောအရာမှနံပါတ်များမှစီပါ

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>];

</span><span><span class="hljs-comment">// အမည်မသိလုပ်ဆောင်ချက်များနှင့်အတူ sorting</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$a</span></span><span> - </span><span><span class="hljs-variable">$b</span></span><span>;  </span><span><span class="hljs-comment">// တက်နိုင်ရန်</span></span><span>
});

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ထုတ်လုပ်မှု -

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; </span><span><span class="hljs-number">5</span></span><span>
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; </span><span><span class="hljs-number">5</span></span><span>
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; </span><span><span class="hljs-number">6</span></span><span>
    [</span><span><span class="hljs-meta">5</span></span><span>] =&gt; </span><span><span class="hljs-number">9</span></span><span>
)
</span></span>

ဤဥပမာတွင်အမည်မသိ function ၏ $ a နှင့် $ b သည် array တွင် element နှစ်ခုနှင့် $ a-$ b ဆိုလိုသည်မှာကျွန်ုပ်တို့သည်အမိန့်ကိုအစဉ်လိုက် sort လုပ်လိုသည်။ သင်အစဉ်အလာတွင် အစဉ်အလာတွင်ရွေးချယ်လိုပါက $ A - $ B ကိုပြောင်းပါ။ $ b ကို $ ခ - $ a;

ဥပမာ - string အရှည်ဖြင့်စီပါ

ငါတို့မှာကြိုးတွေတစ်ခုရှိပြီး string ရဲ့အရှည်အလိုက်ခွဲချင်ကြတယ်ဆိုပါစို့။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-comment">// string အရှည်အားဖြင့် sort</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>) - </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$b</span></span><span>);  </span><span><span class="hljs-comment">// 根据长度တက်နိုင်ရန်</span></span><span>
});

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ထုတ်လုပ်မှု -

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; date
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; cherry
)
</span></span>

ဤဥပမာတွင် strlen ($ a) - strlen ($ ခ) strrlen ၏အရှည်အရသိရသည် sort ဖို့အသုံးပြုသည်။

ဥပမာ - ထုံးတမ်းစဉ်လာစည်းမျဉ်းစည်းကမ်းများအားဖြင့်အရာဝတ်ထုများကိုစီပါ

ကျွန်ုပ်တို့တွင်အရာဝတ်ထုများစွာရှိသည်ဟုဆိုပါစို့။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Person</span></span><span> {
    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">__construct</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$name</span></span></span><span>, </span><span><span class="hljs-variable">$age</span></span><span>) {
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;name = </span><span><span class="hljs-variable">$name</span></span><span>;
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;age = </span><span><span class="hljs-variable">$age</span></span><span>;
    }
}

</span><span><span class="hljs-variable">$people</span></span><span> = [
    </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"Alice"</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>),
    </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"Bob"</span></span><span>, </span><span><span class="hljs-number">25</span></span><span>),
    </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"Charlie"</span></span><span>, </span><span><span class="hljs-number">35</span></span><span>),
];

</span><span><span class="hljs-comment">// 按年龄တက်နိုင်ရန်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$people</span></span><span>, function(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$a</span></span><span>-&gt;age - </span><span><span class="hljs-variable">$b</span></span><span>-&gt;age;
});

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$people</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$person</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$person</span></span><span>-&gt;name . </span><span><span class="hljs-string">" ("</span></span><span> . </span><span><span class="hljs-variable">$person</span></span><span>-&gt;age . </span><span><span class="hljs-string">")\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ထုတ်လုပ်မှု -

 <span><span>Bob (</span><span><span class="hljs-number">25</span></span><span>)
Alice (</span><span><span class="hljs-number">30</span></span><span>)
Charlie (</span><span><span class="hljs-number">35</span></span><span>)
</span></span>

ဤဥပမာသည်အရာဝတ်ထု၏ဂုဏ်သတ္တိများနှင့်အညီအမည်မသိလုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။

3 ။ အကျဉ်းချုပ်

PHP တွင် USART () function သည်အလွန်ပြောင်းလွယ်ပြင်လွယ်ရှိသောကိရိယာတစ်ခုဖြစ်သည်။ အမည်မသိလုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ရှုပ်ထွေးသောစိတ်ကြိုက် custom sorting Logic ကိုလျင်မြန်စွာအကောင်အထည်ဖော်နိုင်သည်။ အမည်ဝှက်ပြီးသောလုပ်ဆောင်ချက်များကိုပြန်လည်ခေါ်ဆိုမှုဆိုင်ရာလုပ်ဆောင်ချက်များအနေဖြင့်၎င်းတို့တွင်မည်သည့်အစုအဝေးကိုမျှမလိုအပ်ပါ

anonymous function များကိုကိုကျိုးကြောင်းညီညွတ်မှုအားဖြင့် developer များကရိုးရှင်းသောမှရှုပ်ထွေးသောနေရာမှအမျိုးမျိုးသောလိုအပ်ချက်များကိုရရှိနိုင်ပါသည်။