array_diff () PHP တွင်အလွန်လက်တွေ့ကျတဲ့ array function တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည်တန်ဖိုးများကိုပထမခင်းကျင်းမှုတွင်ထည့်သွင်းထားသော်လည်းအခြားခင်းကျင်းမှုတွင်မပါ 0 င်ပါ။ ၎င်း၏ syntax သည်ရိုးရှင်းသည်ဟုထင်ရသော်လည်းအမှန်တကယ်အသုံးပြုသောအခါ၎င်းသည်အမှန်တကယ်အသုံးပြုသောအခါမကြာခဏပေါ်လာလေ့ရှိသည်။ ဤဆောင်းပါးသည်သင် array_diff () ကို ပိုမိုထိရောက်စွာအသုံးပြုရန်ကူညီရန်ဘုံအမှားအယွင်းများနှင့် debugging နည်းစနစ်များကိုအကျဉ်းချုပ်ဖော်ပြလိမ့်မည်။
$array1 = ["apple", "banana", "cherry"];
$array2 = ["banana", "cherry"];
$result = array_diff($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[0] => apple
)
သင်မြင်နိုင်သည်နှင့်အမျှ array_diff () သည်တန်ဖိုးများကိုအဓိကအမည်မည်သို့ပင်ရှိပါစေ, ဒေါ်လာ array1 တွင်မပါ 0 င်ပါ။
$array1 = [1, 2, 3];
$array2 = ["2", "3"];
$result = array_diff($array1, $array2);
print_r($result);
မျှော်လင့်ထားသည့်ရလဒ် -
Array
(
[0] => 1
)
အမှန်တကယ် output ကို:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
ဘာကြောင့်လဲဆိုတော့ array_diff () ဟာ မတူကွဲပြားတဲ့နှိုင်းယှဉ်ချက်တွေ ( === အစား == ) ကိုအသုံးပြုလို့ပဲ။ အချို့ဖြစ်ရပ်များတွင်ကြိုးကြိုးများနှင့်နံပါတ်များသည်တစ် ဦး နှင့်တစ် ဦး အောင်မြင်စွာပြောင်းလဲခြင်းမပြုပါ။
ဖြေရှင်းချက် - "တင်းကျပ်စွာနှိုင်းယှဉ်ခြင်း" ကိုအောင်မြင်ရန်စိတ်ကြိုက်နှိုင်းယှဉ်မှု function ကိုသင် array_udiff () ကိုသုံးနိုင်သည်။
function strict_compare($a, $b) {
return ($a === $b) ? 0 : 1;
}
$result = array_udiff($array1, $array2, 'strict_compare');
print_r($result);
$array1 = ["apple", "banana", "apple"];
$array2 = ["banana"];
$result = array_diff($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[0] => apple
[2] => apple
)
မှတ်စု: array_diff () သည် မအောင်မြင်ပါ, ၎င်းသည်မလှုပ်မရှားသောတန်ဖိုးများနှင့်မူရင်းခင်းကျင်းမှုတွင်၎င်းတို့၏မူလသော့ချက်များအားလုံးကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်။
$array1 = ["a" => "apple", "b" => "banana"];
$array2 = ["banana"];
$result = array_diff($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[a] => apple
)
Array သည် Associative Array ဖြစ်သော်လည်း array_diff () သည် တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်းနှင့်သော့များကိုနှိုင်းယှဉ်ခြင်းမရှိပါ။ ရလဒ်ကိုရလဒ်အနေဖြင့်သာကာကွယ်ထားသည်။
intermediate variable တွေကိုပုံနှိပ်ပါ
var_dump($array1, $array2);
သင်ဖြတ်သန်းသွားသော array နှစ်ခုသည်မမျှော်လင့်သောကြိုး / အရေအတွက်ရောနှောခြင်း, နေရာများသို့မဟုတ်ပုံစံချခြင်းကိစ္စများဖြစ်သည်။
JSONS_CENDODEDED ကို အသုံးပြု. ဒေတာဖွဲ့စည်းပုံကိုစစ်ဆေးပါ။
echo json_encode($array1);
တန်ဖိုးအမျိုးအစား (သို့) သွယ်ဝိုက်ဇာတ်ကောင်များ (ဥပမာ - နေရာများ, လိုင်းချိုးခြင်းစသည်တို့) ရှိ,
function ကို debugging ကြိုးစားပါ အကယ်. သင် array_udiff () ကို သုံးပါက, တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်း function ကိုနှိုင်းယှဉ်ကြည့်ရှုရန်မှတ်တမ်းများသို့မဟုတ် debug ထုတ်ပြန်ချက်များကိုထည့်ရန်မမေ့ပါနှင့်။
$urls = [
"https://m66.net/page1",
"https://m66.net/page2",
"https://m66.net/page3"
];
$visited = [
"https://m66.net/page2",
"https://m66.net/page3"
];
$unvisited = array_diff($urls, $visited);
print_r($unvisited);
အကယ်. URL တစ်ခုသည်တစ် ဦး နှင့် တူသောနေရာတစ်ခုသို့မဟုတ်ကွဲပြားခြားနားသောကွဲပြားမှုရှိလျှင်၎င်းသည်မှန်ကန်စွာနှိုင်းယှဉ်နိုင်ခြင်းမရှိသေးပါ။
ဒေတာများကိုသန့်ရှင်းရေးလုပ်ရန်နှင့်၎င်းကိုနှိုင်းယှဉ်ရန်အကြံပြုသည်။
$urls = array_map('trim', $urls);
$visited = array_map('trim', $visited);
$unvisited = array_diff($urls, $visited);
Array_diff () သည်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်း၏အခြေခံအပြုအမူကိုနားလည်ခြင်းနှင့်သင့်တော်သော debugging ကျွမ်းကျင်မှုများကိုပေါင်းစပ်ခြင်းအားဖြင့်သာ၎င်းကိုကျွန်ုပ်တို့အမှန်တကယ်အသုံးပြုနိုင်သည်။
ဤဆောင်းပါးသည်သင့်အားအဘယ်ကြောင့်မှားသနည်းဟူသောပြ problem နာကို ဖြေရှင်း . ဖြေရှင်းနိုင်ရန်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ အကယ် . သင်သည်ပိုမိုရှုပ်ထွေးသောအခြေအနေများသို့မဟုတ်နှိုင်းယှဉ်မှုများပိုမိုများပြားသည်ကိုသင်ကြုံတွေ့ရပါက,