Array_diff () သည် PHP တွင်အသုံးများသော function တစ်ခုဖြစ်သည်။ ရိုးရိုးရှင်းရှင်းပြောရလျှင်၎င်းသည်ပထမဆုံးခင်းကျင်းမှုတွင်တည်ရှိခဲ့သောဒြပ်စင်များကိုပြန်ပို့သော်လည်းအခြား array များမဟုတ်ပါ။ သို့သော်နှိုင်းယှဉ်မှုများပြုလုပ်သောအခါ array_diff () function သည်စာလုံးအကြီးအသေးအရေးကြီးသည်။ အကယ်. array နှစ်ခုသည်တူညီသော strings များရှိသော်လည်းကွဲပြားခြားနားသောအထက်နှင့်အောက်ပိုင်းကိစ္စများရှိသည်။ array_diff () သည် ကွဲပြားခြားနားသောအရာများဖြစ်ရန်စဉ်းစားလိမ့်မည်။
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 သည်အတူတူပင်ဖြစ်ပါကထိုအမှုသည်ကွဲပြားခြားနားသည်အတိုင်းကွဲပြားခြားနားသောဒြပ်စင်များထည့်သွင်းစဉ်းစားနေဆဲဖြစ်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် 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 () သည် ကွဲပြားခြားနားသောကိစ္စရပ်များကြောင့်ကွဲပြားခြားနားသည်ဟုမှားယွင်းစွာဆုံးဖြတ်လိမ့်မည်။
အထက်တွင်ဖော်ပြခဲ့သောဖြစ်ရပ် sensitivity ပြ problem နာကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည်နောက်ထပ်ခြေလှမ်းများလှမ်းရန်လိုအပ်သည်။ ဤတွင်အချို့သောဖြစ်နိုင်ချေရှိသောဖြေရှင်းနည်းများမှာ -
ဘုံဖြေရှင်းနည်းတစ်ခုမှာ 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" သည်အတူတူပင်ဖြစ်သည်ဟုထင်လိမ့်မည်။
သင်ပိုမိုရှုပ်ထွေးသောနှိုင်းယှဉ်မှုစည်းမျဉ်းများကိုပိုမိုလိုအပ်ပါကသင် 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 များကိုနှိုင်းယှဉ်ရန်နှင့်အမှုအားလျစ်လျူရှုလိုပါကအထူးသဖြင့်ဒိုမိန်းအမည်အပိုင်းက 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
(
)
ဒိုမိန်းအမည်များကိုစာလုံးအသေးများအဖြစ်ပြောင်းလဲခြင်းဖြင့်မတူညီသောစာလုံးအကြီးများနှင့်စာလုံးအကြီးများကြောင့်မမှန်ကန်ကြောင်းမမှန်ကန်ပါ။