PHP တွင် array_diff () function ကို အသုံးပြု. array နှစ်ခုထက်ပိုသောကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်သည်အလွန်အသုံးဝင်သည်, အထူးသဖြင့်အချက်အလက်ပမာဏအမြောက်အများကိုနှိုင်းယှဉ်ခြင်းနှင့်စစ်ထုတ်ရန်လိုအပ်သည့်အခါ။ ယေဘူယျအားဖြင့် "array class encapsulation များကိုမည်သို့တည်ဆောက်ရမည်ကိုဤဆောင်းပါးတွင်ဖော်ပြပါမည် ။
Encapsulation မစတင်မီ PHP ၏ built-in array_diff () function ကိုကျွန်ုပ်တို့နားလည်ရန်လိုအပ်သည်။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff(array $array1, array ...$arrays): array
ဤလုပ်ဆောင်ချက်သည် array အမြောက်အများကို parameters များအဖြစ်ယူပြီး ဒေါ်လာ array 1 တွင် element များပါ 0 င်သော etray များပါ 0 င်သည်။ သတိပြုရန်မှာ array_diff () ကို element တန်ဖိုးများအပေါ် အခြေခံ. နှိုင်းယှဉ်ပါလိမ့်မည်။
$array1 = [1, 2, 3, 4, 5];
$array2 = [4, 5, 6, 7];
$result = array_diff($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[0] => 1
[1] => 2
[2] => 3
)
အထက်ဖော်ပြပါဥပမာတွင် ဒေါ်လာ array1 နှင့် $ array2 တွင်တူညီသော element များ (4 နှင့် 5) ကိုဖယ်ရှားပြီးကျန်ရှိသောဒြပ်စင်များ (1, 2, 3, 3) ကိုရလဒ်အဖြစ်ပြန်ပို့သည်။
၎င်းကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ကျယ်ကျယ်ပြန့်ပြန့်စေရန် array_diff () ကို စာသင်ခန်းတစ်ခုသို့ကျွန်ုပ်တို့ adaratfulate လုပ်နိုင်သည်။ ဤအတန်းသည်များစွာသော array များရရှိနိုင်ပါသည်။
စိတ်ကြိုက်နှိုင်းယှဉ်စည်းမျဉ်းစည်းကမ်းများ (ထိုကဲ့သို့သောတင်းကျပ်စွာနှိုင်းယှဉ်ခြင်းကဲ့သို့) ကိုထောက်ပံ့သည်။
၎င်းသည် URLs ၏ခြားနားချက်နှိုင်းယှဉ်မှု, အထူးသဖြင့်ဒိုမိန်းအမည်အစားထိုးပြ problem နာကိုကိုင်တွယ်နိုင်သည်။
အောက်ဖော်ပြပါသည်အတန်း၏အကောင်အထည်ဖော်မှုကုဒ်ဖြစ်သည်။
<?php
class ArrayDiffTool
{
/**
* array ကွဲပြားခြားနားမှုနှိုင်းယှဉ်
*
* @param array $array1 ပထမ ဦး ဆုံးခင်းကျင်း
* @param array ...$arrays နောက်ဆက်တွဲ arrays
* @return array ခြားနားချက်ခင်းကျင်းကိုပြန်သွားသည်
*/
public function compare(array $array1, array ...$arrays): array
{
// ဟုတ်တယ် URL ဒိုမိန်းအမည်အစားထိုး
$array1 = $this->replaceUrlDomain($array1);
foreach ($arrays as $index => $array) {
$arrays[$index] = $this->replaceUrlDomain($array);
}
// အသုံးပြု PHP ပါဝင်သည် array_diff ကွဲပြားခြားနားမှုတွက်ချက်ရန်လုပ်ဆောင်ချက်များကို
return array_diff($array1, ...$arrays);
}
/**
* ပြန်လည်နေရာချ URL အတွက်ဒိုမိန်းအမည် m66.net
*
* @param array $array အခင်းအကျင်း
* @return array 返回修改后的အခင်းအကျင်း
*/
private function replaceUrlDomain(array $array): array
{
return array_map(function($value) {
// တန်ဖိုးကိုလျှင် URL string ကိုရိုက်ပါ,ပြန်လည်နေရာချ域名为 m66.net
if (filter_var($value, FILTER_VALIDATE_URL)) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $value);
}
return $value;
}, $array);
}
}
ဤ arraydifftool အတန်းကိုအောက်ပါနည်းလမ်းများကိုနှိုင်းယှဉ်ရန်ဤ arraydifftool အတန်းကိုသုံးနိုင်သည်။ ကျွန်ုပ်တို့တွင် URLs နှင့်အတူ array နှစ်ခုရှိသည်ဆိုပါစို့, ၎င်းတို့၏ဒိုမိန်းကို M66.net ဖြင့်အစားထိုးလိုပြီး Array များအကြားကွဲပြားခြားနားမှုများကိုရှာဖွေလိုကြသည်ဆိုပါစို့။
<?php
// Class ဖိုင်များကိုမိတ်ဆက်ပါ
include 'ArrayDiffTool.php';
// Initialization Tool အတန်းအစား
$arrayDiffTool = new ArrayDiffTool();
// နှစ်ခုပါဝင်မှုသတ်မှတ်ပါ URL 的အခင်းအကျင်း
$array1 = [
'https://example.com/page1',
'https://m66.net/page2',
'https://someotherdomain.com/page3'
];
$array2 = [
'https://m66.net/page2',
'https://anotherdomain.com/page4'
];
// ကွဲပြားခြားနားမှုများ၏နှိုင်းယှဉ်
$result = $arrayDiffTool->compare($array1, $array2);
// output ကိုခြားနားချက်ရလဒ်များ
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[0] => https://example.com/page1
[2] => https://someotherdomain.com/page3
)
အပေါ်တွင်ဖော်ပြထားသည့်အတိုင်း နှိုင်းယှဉ်ခြင်း () နည်းလမ်းသည် array1 ရှိ URAL တွင် URL တွင် URL တွင် M66.net တွင် M66.net ဖြင့်အစားထိုးထားသည့်ကွဲပြားခြားနားမှုများပါ 0 င်စေလိမ့်မည်။
array_diff () function ကို encapsulating အားဖြင့်ကျွန်ုပ်တို့သည် urls ပါ 0 င်သည့်အချက်အလက်များကိုရင်ဆိုင်နေရသည့်အခါအမျိုးမျိုးသောကွဲပြားခြားနားမှုများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စွာကိုင်တွယ်နိုင်သည်။ Class Encapsulation ၏အကူအညီဖြင့်သုံးစွဲသူများသည်ထိရောက်သောနှိုင်းယှဉ်မှုကိုအောင်မြင်စွာမရရှိနိုင်ပါ, သို့သော် domain name အစားထိုးခြင်း,