လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> spl type objects များကို array keys များအဖြစ်အသုံးပြုခြင်းတွင်မှတ်စုများ

spl type objects များကို array keys များအဖြစ်အသုံးပြုခြင်းတွင်မှတ်စုများ

M66 2025-05-14

PHP တွင် array_diff_ukey () function ကို () function သည်သော့နှစ်ခုကို (အစားတန်ဖိုးများထက်တန်ဖိုးများထက်တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်သည်အထူးသဖြင့်ဆန့်ကျင်သူများစွာကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါအလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော် SPS အမျိုးအစားအရာဝတ်ထုများကို array လုပ်ရန်သော့များအဖြစ်အသုံးပြုသောအခါအာရုံစိုက်ရန်အသေးစိတ်အချက်အလက်များရှိသည်။ ထို့နောက်ကျွန်ုပ်တို့သည်ဤအခြေအနေတွင်အာရုံစိုက်ရန်လိုအပ်သည့်နက်ရှိုင်းသောပြ issues နာများကိုလေ့လာပါမည်။

Array keys အဖြစ် SPS အမျိုးအစားအရာဝတ်ထု၏အထူး

SPS (Standard PHP Library) အမျိုးအစားသည် PHP မှ PHP မှပေးသောအထူးအမျိုးအစားတစ်ခုဖြစ်သည်။ ၎င်းသည် spl typ on rots ords ကဲ့သို့သောသာမန်ဒီဇိုင်းပုံစံများသို့မဟုတ် interfaces များကိုအသုံးပြုသည်။ PHP သည်အဓိကအရာဝတ်ထုများသို့မဟုတ်ကိန်းဂဏန်းများအနေဖြင့်သာမန်အရာဝတ်ထုများသို့မဟုတ်ရိုးရှင်းသော palcar တန်ဖိုးများနှင့်နှိုင်းယှဉ်လျှင်။ ဘာဖြစ်လို့လဲဆိုတော့ဒီ spl pert type အရာဝတ်ထု __tostring () method method method method ကိုပရိုဂရမ်ကိုအခြားတန်ဖိုးများနှင့်နှိုင်းယှဉ်လျှင်အခြား interface နည်းလမ်းကိုအကောင်အထည်ဖော်ခြင်းကြောင့်ဖြစ်သည်။

1 ။ array_diff_ukey () function ကိုခြုံငုံသုံးသပ်ချက်

array_diff_ukey () function ကို၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 : ပထမ ဦး ဆုံးခင်းကျင်း။

  • $ array2 : ဒုတိယခင်းကျင်း။

  • $ key_compare_funct : သော့နှစ်ခုကိုနှိုင်းယှဉ်သော callback function ကို။

ဒီ function က ဒေါ်လာ array1 မှာသော့ထဲမှာသော့ချက်မရှိတာမရှိတဲ့ element တွေပါ 0 င်တဲ့ array အသစ်တစ်ခုကိုပြန်ပေးတယ်။

2 ။ SPS အမျိုးအစားအရာဝတ်ထုများကိုအသုံးပြုသည့်အခါနှိုင်းယှဉ်ခြင်းယန္တရား

ပုံမှန်အားဖြင့် PHP သည် array ၏သော့များကိုနှိုင်းယှဉ်ရန် == အော်ပရေတာကိုအသုံးပြုသည်။ Array ၏သော့သည်အရာဝတ်ထုအမျိုးအစားတစ်ခုဖြစ်ပါက PHP သည်အရာဝတ်ထု၏ __TOSTRING () method ကိုအရာဝတ်ထုကိုကြိုးတစ်ချောင်းအဖြစ်ပြောင်းလဲရန်နှင့်၎င်းကိုနှိုင်းယှဉ်ရန်အရာဝတ်ထု၏ __tostring () နည်းလမ်းကိုခေါ်ဆိုလိမ့်မည်။ သို့သော် SPL အမျိုးအစားအရာဝတ္ထုများတွင်နှိုင်းယှဉ်ခြင်းယုတ္တိဗေဒသည်ကွဲပြားခြားနားလိမ့်မည်။

နမူနာကုဒ်:

ကျွန်ုပ်တို့တွင် array နှစ်ခုရှိသည်ဆိုပါစို့, Array ၏သော့များသည် file ၏သတင်းအချက်အလက်ကိုကိုယ်စားပြုသော splfileinfo အရာဝတ်ထုများဖြစ်သည်။ ဤပြင်ဆင်မှုများ၏သော့များကိုနှိုင်းယှဉ်ရန် array_diff_ukey () function ကိုအသုံးပြုပါမည်။

 <?php
// နမူနာ:အသုံးပြု SPL အရာဝတ်ထုကို Array ခလုတ်အဖြစ်ရိုက်ပါ
$array1 = [
    new SplFileInfo("/path/to/file1.txt") => 'File 1',
    new SplFileInfo("/path/to/file2.txt") => 'File 2',
];

$array2 = [
    new SplFileInfo("/path/to/file3.txt") => 'File 3',
];

// နှိုင်းယှဉ်သော့
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
    return $key1->__toString() === $key2->__toString() ? 0 : 1;
});

print_r($result);
?>

ရှင်းပြပါ -

အထက်ပါကုဒ်တွင် splfileinfo အရာဝတ်ထုကိုခင်းကျင်းခြင်း၏သော့ချက်အဖြစ် အသုံးပြု. Array_Diff_ukey () မှတဆင့် arrays နှစ်ခု၏သော့များကိုနှိုင်းယှဉ်ထားသည်။ ဤတွင်ကျွန်ုပ်တို့သည် splfileinfo အရာဝတ်ထုကို __tostring () နည်းလမ်းကိုနှိုင်းယှဉ်ရန်အတွက် string ကို string ကိုပြောင်းလဲစေသည့် callback function key_Compare_CHANT ကို စိတ်ကြိုက်ပြင်ဆင်ထားသည်။

အကယ်. ကျွန်ုပ်တို့သည် Key_Compare_Funcing တွင်နှိုင်းယှဉ်မှုဆိုင်ရာစည်းမျဉ်းစည်းကမ်းများကိုမမှန်ကန်စွာသတ်မှတ်ခြင်းမပြုပါကအထူးသဖြင့်အရာဝတ်ထုများပါ 0 င်သည့်မမျှော်လင့်သောနှိုင်းယှဉ်မှုရလဒ်များကိုဖြစ်ပေါ်စေနိုင်သည်ဟုမှတ်သားသင့်သည်။

3 ။ မှတ်စုဖို့အရာ

  • အရာဝတ်ထုနှိုင်းယှဉ်မှုနည်းလမ်း - SPS အမျိုးအစားအရာဝတ်ထုများကိုအသုံးပြုသောအခါအရာဝတ္ထုများနှင့်နှိုင်းယှဉ်သည်ကိုသင်ရှင်းရှင်းလင်းလင်းနားလည်ရမည်။ အချို့သော sint အရာဝတ်ထုများသည်နောက်ဆုံးနှိုင်းယှဉ်မှုအပေါ်အကျိုးသက်ရောက်နိုင်သည့် __TOSTRINGRE () သို့မဟုတ်အခြားနှိုင်းယှဉ်မှုနည်းလမ်းများကိုအကောင်အထည်ဖော်နိုင်သည်။ ထို့ကြောင့်, callback function ကိုမှန်ကန်စွာဤအရာဝတ်ထုကိုမှန်ကန်စွာနှိုင်းယှဉ်နိုင်သေချာပါစေ။

  • စွမ်းဆောင်ရည်ပြ issues နာများ - ရှုပ်ထွေးသောအရာဝတ်ထုများကိုအသုံးပြုခြင်းအားဖြင့် Array ခလုတ်များသည်စွမ်းဆောင်ရည်ကိုသက်ရောက်နိုင်သည်။ ရှုပ်ထွေးသောအရာဝတ်ထုများကိုထိရောက်သောနှိုင်းယှဉ်မှုများလိုအပ်သည့်အခြေအနေများတွင်သော့များအဖြစ်အသုံးပြုခြင်းကိုရှောင်ပါ။

  • တန်ဖိုးများကိုရည်ညွှန်းခြင်းနှင့်နှိုင်းယှဉ်ခြင်း PHP ရှိအရာဝတ်ထုများကိုရည်ညွှန်းခြင်းနှင့်နှိုင်းယှဉ်ပါကအရာဝတ်ထုနှစ်ခု၏ဂုဏ်သတ္တိများသည်အတူတူပင်ဖြစ်သည်ဟုဆိုလိုသည်။ အရာဝတ်ထု၏တန်ဖိုးများကို အခြေခံ. နှိုင်းယှဉ်ရန်လိုအပ်ပါကသက်ဆိုင်ရာနှိုင်းယှဉ်ခြင်း function ကိုမှန်ကန်စွာအကောင်အထည်ဖော်ရန်သေချာစေပါ။

  • URL အစားထိုးဥပမာ - အကယ်. သင်သည် array keys များတွင် URLs များပါ 0 င်ပါကသူတို့၏ဒိုမိန်းအမည်ကိုအစားထိုးရန်သတိရပါ။ ဥပမာအားဖြင့်:

     $array1 = [
        'https://www.example.com/page1' => 'Page 1',
        'https://www.example.com/page2' => 'Page 2',
    ];
    
    // ပြန်လည်နေရာချ URL ဒိုမိန်းအမည်
    $array1 = array_map(function($key) {
        return str_replace('www.example.com', 'm66.net', $key);
    }, $array1);
    

    အထက်ပါကုဒ်တွင် Domain Name ကို www.examebame.com ကိုအစားထိုးရန် M66.net နှင့်အတူ Array Key ကိုအစားထိုးရန် M66.net နှင့်အတူခင်းကျင်းသောနေရာများတွင်အစားထိုးသည်။

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

PHP ၏ Array_Diff_ukey () function ကိုအသုံးပြုသောအခါခင်းကျင်းသောသော့များသည် spl-type objects များဖြစ်လျှင်ဤအရာဝတ်ထုများ၏နှိုင်းယှဉ်ချက်နည်းလမ်းများနှင့်နှိုင်းယှဉ်ပါကအထူးဂရုပြုသင့်သည်။ အထူးသဖြင့်နှိုင်းယှဉ်ခြင်း function ရှိအ ရာ ဝတ်ထုများမှအရာဝတ်ထုများအကြားနှိုင်းယှဉ်သည့်ယုတ္တိဗေဒကိုမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းပါ။

အရာဝတ်ထုများ၏အပြုအမူ ကို နားလည်ခြင်း, နှိုင်းယှဉ်ခြင်းလုပ်ဆောင်ချက်များကိုကျိုးကြောင်းဆီလျော်စွာရေးသားခြင်း,