Array_diff () သည် PHP တွင် Array function တစ်ခုဖြစ်သည်။ ဒီလုပ်ဆောင်ချက်ကခင်းကျင်းမှုကိုမနှိုင်းယှဉ်ပါ။
သဒ္ဒါ:
array_diff(array $array1, array $array2, array ...$arrays): array
$ array1 : ပထမ ဦး ဆုံးခင်းကျင်း (နှိုင်းယှဉ်အတွက်အသုံးပြုတဲ့ benchmark ခင်းကျင်း) ။
$ array2, ... $ arrays : အခြား Arrays: အခြား Arrays, arrays မျိုးစုံ parameters တွေကိုအဖြစ်နှိုင်းယှဉ်နိုင်ပါတယ်။
ဤလုပ်ဆောင်ချက်သည် ဒေါ်လာ array 1 တွင်ပေါ်လာသောဒြပ်စင်များပါ 0 င်သော array တစ်ခုနှင့် အခြား array2 နှင့်အခြား array များမဟုတ်ပါ။
အသုံးပြုသူရဲ့အီးမေးလ်လိပ်စာကိုသိုလှောင်ထားတဲ့ဒေတာဘေ့စ်ရှိတယ်ဆိုပါစို့။ uploaded Mailbox စာရင်းကို database ရှိစာတိုက်ပုံးများနှင့်နှိုင်းယှဉ်ရန် array_diff () function ကိုလျင်မြန်စွာရှာဖွေရန် (သို့) ဒေတာဘေ့စ်တွင်မတင်ပါနှင့်ဒေတာဘေ့စ်တွင်မတင်ထားပါ။
ဒေတာ ဘေ့ စ်ကို User_DB အမည်ရှိသည့် Database Connection ကိုပထမ ဦး ဆုံးသတ်မှတ်ထားကြပါစို့။ သုံးစွဲသူ၏စာတိုက်ပုံးကိုသိမ်းဆည်းရန် Field email တစ်ခုရှိသည်။
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှုသတင်းအချက်အလက်
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
// ဒေတာဘေ့စ်ရှိစာတိုက်ပုံးများအားလုံးကိုမေးမြန်းပါ
$sql = "SELECT email FROM users";
$result = $conn->query($sql);
// ဒေတာဘေ့စ်ရှိစာတိုက်ပုံးများကို array ထဲသို့သိမ်းပါ
$dbEmails = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$dbEmails[] = $row['email'];
}
}
$conn->close();
?>
ဤကုဒ်တွင်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ် သုံးစွဲသူ user_DB နှင့်ပထမဆုံးဆက်သွယ်ပါ။ ထို့နောက် အသုံးပြုသူများ စားပွဲမှအီးမေးလ်လိပ်စာအားလုံးကိုရယူပြီး၎င်းတို့ကို $ dibemails array သို့သိမ်းဆည်းပါ။
ထို့နောက်ကျွန်ုပ်တို့သည်ပုံမှန်အားဖြင့်ပုံစံဖြင့် တင်. ခင်းကျင်းခြင်းဖြင့်သိမ်းဆည်းထားသည့်တင်ထားသောစာတိုက်ပုံးစာရင်းကိုဖန်တီးနိုင်သည်။
<?php
// ဤသည်တင်ထားသည့်စာတိုက်ပုံးဒေတာများဖြစ်သည်ဟုယူဆပါ
$uploadedEmails = [
'user1@example.com',
'user2@example.com',
'user3@example.com',
'user4@example.com'
];
?>
ယခုတွင်ကျွန်ုပ်တို့တွင်စာတိုက် ပုံး စာရင်းနှင့်တင်ထားသောစာတိုက်ပုံးစာရင်းတွင်တင်ထားသောစာတိုက်ပုံးစာရင်းတွင်တင်ထားသောစာတိုက်ပုံးများစာရင်းတွင် ဒေါ်လာ uploadedememails တွင်တင်ထားသည့်အတွက် array_diff () function ကိုသုံးနိုင်သည်။
<?php
// upload စာရင်းထဲတွင်စာတိုက်ပုံးကိုရှာဖွေပါ။ သို့သော်ဒေတာဘေ့စ်တွင်မပါ
$diffEmails = array_diff($uploadedEmails, $dbEmails);
// output ကိုခြွင်းချက်မှတ်တမ်း
if (!empty($diffEmails)) {
echo "အောက်ပါစာတိုက်ပုံးသည်ဒေတာဘေ့စ်တွင်မရှိပါ:<br>";
foreach ($diffEmails as $email) {
echo $email . "<br>";
}
} else {
echo "တင်ထားသောစာတိုက်ပုံးများအားလုံးသည်ဒေတာဘေ့စ်တွင်ရှိသည်。";
}
?>
အထက်ပါကုဒ်များအားလုံးကိုပေါင်းစပ်ခြင်းဖြင့် PHP အစီအစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှုသတင်းအချက်အလက်
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
// ဒေတာဘေ့စ်ရှိစာတိုက်ပုံးများအားလုံးကိုမေးမြန်းပါ
$sql = "SELECT email FROM users";
$result = $conn->query($sql);
// ဒေတာဘေ့စ်ရှိစာတိုက်ပုံးများကို array ထဲသို့သိမ်းပါ
$dbEmails = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$dbEmails[] = $row['email'];
}
}
$conn->close();
// ဤသည်တင်ထားသည့်စာတိုက်ပုံးဒေတာများဖြစ်သည်ဟုယူဆပါ
$uploadedEmails = [
'user1@example.com',
'user2@example.com',
'user3@example.com',
'user4@example.com'
];
// upload စာရင်းထဲတွင်စာတိုက်ပုံးကိုရှာဖွေပါ။ သို့သော်ဒေတာဘေ့စ်တွင်မပါ
$diffEmails = array_diff($uploadedEmails, $dbEmails);
// output ကိုခြွင်းချက်မှတ်တမ်း
if (!empty($diffEmails)) {
echo "အောက်ပါစာတိုက်ပုံးသည်ဒေတာဘေ့စ်တွင်မရှိပါ:<br>";
foreach ($diffEmails as $email) {
echo $email . "<br>";
}
} else {
echo "တင်ထားသောစာတိုက်ပုံးများအားလုံးသည်ဒေတာဘေ့စ်တွင်ရှိသည်。";
}
?>