လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_diff ကိုသုံးသောအခါအမှုပြ problems နာများကိုလျစ်လျူရှုပါ။

array_diff ကိုသုံးသောအခါအမှုပြ problems နာများကိုလျစ်လျူရှုပါ။

M66 2025-05-14

Array_diff () သည် PHP တွင်အသုံးများသော function တစ်ခုဖြစ်သည်။ ရိုးရိုးရှင်းရှင်းပြောရလျှင်၎င်းသည်ပထမဆုံးခင်းကျင်းမှုတွင်တည်ရှိခဲ့သောဒြပ်စင်များကိုပြန်ပို့သော်လည်းအခြား array များမဟုတ်ပါ။ သို့သော်နှိုင်းယှဉ်မှုများပြုလုပ်သောအခါ array_diff () function သည်စာလုံးအကြီးအသေးအရေးကြီးသည်။ အကယ်. array နှစ်ခုသည်တူညီသော strings များရှိသော်လည်းကွဲပြားခြားနားသောအထက်နှင့်အောက်ပိုင်းကိစ္စများရှိသည်။ array_diff () သည် ကွဲပြားခြားနားသောအရာများဖြစ်ရန်စဉ်းစားလိမ့်မည်။

1 ။ array_diff ကိုသုံးတဲ့အခါမှာတွေ့နိုင်တဲ့ပြ problems နာတွေ ()

ကြိုးနှင့်နှိုင်းယှဉ်သောအခါ 1.1 ကိစ္စပြ problem နာ

array_diff () ကို သုံး. အမှုန်ကိုလျစ်လျူရှုလိုပါက array_diff () ကို တိုက်ရိုက်မမျှော်လင့်သောရလဒ်များကိုတိုက်ရိုက်ပို့ဆောင်လိမ့်မည်။ ဥပမာအားဖြင့်, ကျွန်ုပ်တို့တွင် array နှစ်ခုရှိသည်ဆိုပါစို့, ကွဲပြားခြားနားသောစာလုံးအကြီးများနှင့်အသေးအဖွဲများပါ 0 င်သည်။

 $array1 = ["Apple", "Banana", "Cherry"];
$array2 = ["apple", "banana", "cherry"];
$result = array_diff($array1, $array2);
print_r($result);

output ရလဒ် -

 Array
(
    [0] => Apple
    [1] => Banana
    [2] => Cherry
)

ဤကုဒ်သည် array_diff () သည် "Apple" နှင့် "Apple" သည်ကွဲပြားသော်လည်း "Apple" နှင့် "Apple" သည်ကွဲပြားခြားနားသည်ဟုဆိုသည်။ Array_diff () သည်ပုံမှန်အားဖြင့်စာလုံးအကြီးအသေးအရေးအသားသည်ပုံမှန်အားဖြင့်စာလုံးအကြီးအသေးအရေးကြီးသည်, ကြိုးနှစ်ချောင်းရှိသော contents သည်အတူတူပင်ဖြစ်ပါကထိုအမှုသည်ကွဲပြားခြားနားသည်အတိုင်းကွဲပြားခြားနားသောဒြပ်စင်များထည့်သွင်းစဉ်းစားနေဆဲဖြစ်သည်။

စာလုံးအကြီးနှင့်စာလုံးအသေးကိုအကျိုးသက်ရောက်စေသော 1.2 ကြိုး

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် strings များပါ 0 င်သည့်အခြေအနေများပါ 0 င်သည့်အခြေအနေများပါ 0 င်သည့်အခြေအနေများပါ 0 င်သည့်အခြေအနေများပါ 0 င်သည်။ ဤရောနှောထားသောအမှု strings များကိုနှိုင်းယှဉ်ရန်လိုအပ်သည့်အခါ array_diff () သည် မတိကျသောရလဒ်များဖြစ်စေနိုင်သည်။

ဥပမာအားဖြင့်:

 $array1 = ["https://example.com/Page", "https://m66.net/Home"];
$array2 = ["https://m66.net/home", "https://example.com/page"];
$result = array_diff($array1, $array2);
print_r($result);

output ရလဒ် -

 Array
(
    [0] => https://example.com/Page
    [1] => https://m66.net/Home
)

ဤ URL နှစ်ခု၏အမှန်တကယ်ပါ 0 င်မှုများသည်အတူတူပင်ဖြစ်သော်လည်း array_diff () သည် ကွဲပြားခြားနားသောကိစ္စရပ်များကြောင့်ကွဲပြားခြားနားသည်ဟုမှားယွင်းစွာဆုံးဖြတ်လိမ့်မည်။

2 ။ ဤပြ problems နာများကိုမည်သို့ရှောင်ရှားနိုင်သနည်း။

အထက်တွင်ဖော်ပြခဲ့သောဖြစ်ရပ် sensitivity ပြ problem နာကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည်နောက်ထပ်ခြေလှမ်းများလှမ်းရန်လိုအပ်သည်။ ဤတွင်အချို့သောဖြစ်နိုင်ချေရှိသောဖြေရှင်းနည်းများမှာ -

2.1 array element အားလုံးကိုစာလုံးအသေးအဖြစ်ပြောင်းပါ။

ဘုံဖြေရှင်းနည်းတစ်ခုမှာ strings အားလုံးကို arrays arrays arrys (စာလုံးအကြီးသို့မဟုတ်စာလုံးအကြီး) သို့ပြောင်းလဲရန်ဖြစ်သည်။ ထို့နောက် array_diff () တွက်ချက်မှုများကိုလုပ်ဆောင်ရန်ဖြစ်သည်။ ဤသည်နှင့်နှိုင်းယှဉ်သောအခါကိစ္စရပ်အားလျစ်လျူရှုထားသည်။

 $array1 = ["Apple", "Banana", "Cherry"];
$array2 = ["apple", "banana", "cherry"];

$array1_lower = array_map('strtolower', $array1);
$array2_lower = array_map('strtolower', $array2);

$result = array_diff($array1_lower, $array2_lower);
print_r($result);

ရလဒ်ရလဒ် -

 Array
(
)

ဤနည်းဖြင့်ပြုပြင်ပြီးနောက် array_diff () သည် "Apple" နှင့် "Apple" သည်အတူတူပင်ဖြစ်သည်ဟုထင်လိမ့်မည်။

2.2 စိတ်ကြိုက်နှိုင်းယှဉ်လုပ်ဆောင်မှုများကိုအသုံးပြုခြင်း

သင်ပိုမိုရှုပ်ထွေးသောနှိုင်းယှဉ်မှုစည်းမျဉ်းများကိုပိုမိုလိုအပ်ပါကသင် array_udiff () ကို သုံးနိုင်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

 function caseInsensitiveCompare($a, $b) {
    return strcasecmp($a, $b);
}

$array1 = ["Apple", "Banana", "Cherry"];
$array2 = ["apple", "banana", "cherry"];

$result = array_uDiff($array1, $array2, "caseInsensitiveCompare");
print_r($result);

ရလဒ်ရလဒ် -

 Array
(
)

ဤနေရာတွင်ကျွန်ုပ်တို့သည် stricasecmp () function ကိုသုံးသည်။

URLs များကိုပြုပြင်သည့်အခါ 2.3 အမှု

URLs များကိုနှိုင်းယှဉ်ရန်နှင့်အမှုအားလျစ်လျူရှုလိုပါကအထူးသဖြင့်ဒိုမိန်းအမည်အပိုင်းက PHP ၏ Built-in Name_Url () function ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:

 function normalize_url($url) {
    $parsed_url = parse_url($url);
    $parsed_url['host'] = strtolower($parsed_url['host']);
    return $parsed_url['scheme'] . '://' . $parsed_url['host'] . $parsed_url['path'];
}

$array1 = ["https://example.com/Page", "https://m66.net/Home"];
$array2 = ["https://m66.net/home", "https://example.com/page"];

$array1_normalized = array_map('normalize_url', $array1);
$array2_normalized = array_map('normalize_url', $array2);

$result = array_diff($array1_normalized, $array2_normalized);
print_r($result);

ရလဒ်ရလဒ် -

 Array
(
)

ဒိုမိန်းအမည်များကိုစာလုံးအသေးများအဖြစ်ပြောင်းလဲခြင်းဖြင့်မတူညီသောစာလုံးအကြီးများနှင့်စာလုံးအကြီးများကြောင့်မမှန်ကန်ကြောင်းမမှန်ကန်ပါ။