PHP တွင် array_combine () function ကို arrays နှစ်ခုကိုပေါင်းသင်းရေးဆိုင်ရာခင်းကျင်းမှုတစ်ခုအဖြစ်ပေါင်းစပ်ရန်အသုံးပြုသည်။ ၎င်း၏ပထမဆုံး parameter သည်သော့ချက်ခင်းကျင်းနှင့်ဒုတိယ parameter သည်တန်ဖိုးခင်းကျင်းဖြစ်သည်။ function ကို key array တစ်ခုစီကိုတွဲဖက်ခင်းတွဲမှုရှိသည့်သော့ချက်တစ်ခုစီနှင့်တန်ဖိုးရှိ array တွင်ရှိသော element တစ်ခုစီကိုသက်ဆိုင်ရာတန်ဖိုးတစ်ခုအဖြစ်အသုံးပြုပါလိမ့်မည်။
သို့သော်သော့ချက်ခင်းကျင်းရေးတွင်ထပ်တူသော့များရှိပါက array_combine () ကို အသုံးပြုသည့်အခါပြ problems နာများရှိလိမ့်မည်။ ဘာတွေဖြစ်နေလဲ, ဒီအခြေအနေကိုဘယ်လိုကိုင်တွယ်ရမယ်ဆိုတာကိုကြည့်ကြရအောင်။
array_comboine () ၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_combine(array $keys, array $values): array|false
$ keys : သော့အမည်များပါ 0 င်သည့်နေရာတစ်ခု။
$ တန်ဖိုးများ - သော့ချက်၏သက်ဆိုင်ရာတန်ဖိုးများပါ 0 င်သောခင်းကျင်းမှု။
$ keys array ရှိ elements များသည် ဒေါ်လာတန်ဖိုးများရှိ သည့်အရာများကိုကိုက်ညီသည့်အခါ array_combovine () သည် array_combovie () သည် Associative Array အသစ်ကိုပြန်လည်ပေးအပ်သည်။
$keys = ['a', 'b', 'c'];
$values = [1, 2, 3];
$result = array_combine($keys, $values);
print_r($result);
ရလဒ်ရလဒ် -
Array
(
[a] => 1
[b] => 2
[c] => 3
)
အကယ်. သော့ချက်ခင်းကျင်းရေးတွင်ထပ်တူသော့များရှိပါက array_comBine () သည် အမှားတစ်ခုဖြစ်ပြီး မှားယွင်းသောအမှားတစ်ခုကို သတင်းပို့လိမ့်မည်။ ဘာဖြစ်လို့လဲဆိုတော့ PHP မှာ array ရဲ့သော့တွေကထူးခြားတယ်, ထပ်ခါတလဲလဲအဓိကတန်ဖိုးများကိုမရရှိနိုင်ပါ။
$keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$result = array_combine($keys, $values);
if ($result === false) {
echo "အမှားတစ်ခုဖြစ်ပွားခဲ့သည်,ပုံတူပွားများခင်းကျင်းတွင်တည်ရှိသည်。";
}
ရလဒ်ရလဒ် -
အမှားတစ်ခုဖြစ်ပွားခဲ့သည်,ပုံတူပွားများခင်းကျင်းတွင်တည်ရှိသည်。
အပေါ်ကပြထားတဲ့အတိုင်း array_comboine () မှားယွင်းစွာ ပြန်ပို့ခြင်းနှင့်ခိုင်လုံသောအပေါင်းအသင်းခင်းကျင်းမှုကိုမဖန်တီးပါ။
ထပ်ခါတလဲလဲသော့များကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားရန်သင်သော့ချက်ခင်းကျင်းမှုတွင် array_comboine () မသုံးမီထပ်တူသော့များပါ 0 င်သည်ကိုစစ်ဆေးနိုင်သည်။ ထပ်တူသော့များရှိပါက၎င်းတို့နှင့်အတူကိုင်တွယ်ရန်အောက်ပါနည်းလမ်းများကိုများသောအားဖြင့်ယူနိုင်သည်။
အဆိုပါ array_unique () function ကို duplicate သော့များကိုဖယ်ရှားရန်အသုံးပြုနိုင်ပါသည်။ ဤသည်ကအဓိကခင်းကျင်းမှုသည် array_combine () ကိုကူးယူခြင်းမပြုရန်သေချာစေသည်။
$keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$keys = array_unique($keys); // ထပ်သော့များကိုဖယ်ရှားပါ
$result = array_combine($keys, $values);
print_r($result);
ရလဒ်ရလဒ် -
Array
(
[a] => 1
[b] => 2
)
နောက်ထပ်ချဉ်းကပ်နည်းတစ်ခုမှာထပ်တူသော့များကိုကိုင်တွယ်ရန်ထုံးစံနည်းဗျူဟာကိုအသုံးပြုရန်ဖြစ်သည်။ ဥပမာအားဖြင့် sparra_count_values () ကိုသုံးပါ။
$keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$keys_count = array_count_values($keys);
foreach ($keys_count as $key => $count) {
if ($count > 1) {
// ထပ်ခါတလဲလဲသော့များကို processing,ဥပမာအားဖြင့်, သော့ပြီးနောက်နံပါတ်များကိုဖြည့်ပါ
$keys = array_map(function ($k) use ($key) {
static $counter = 1;
if ($k === $key) {
return $key . $counter++;
}
return $k;
}, $keys);
}
}
$result = array_combine($keys, $values);
print_r($result);
ရလဒ်ရလဒ် -
Array
(
[a] => 1
[b1] => 2
[b2] => 3
)
array_comboine () ကို အသုံးပြုသောအခါ key array တွင်သော့မိတ္တူပွားများရှိပါက PHP သည်အမှားတစ်ခုနှင့် မှားယွင်းသော တုံ့ပြန်မှုကိုသတင်းပို့လိမ့်မည်။ ဤအရာကိုရှောင်ရှားရန်သင်သည်ထပ်တူသော့များကိုဖယ်ရှားရန် array_unique () function ကိုသုံးနိုင်သည်သို့မဟုတ်သင်လိုအပ်ချက်များနှင့်အညီထပ်တူသော့များကိုကိုင်တွယ်ရန်မဟာဗျူဟာကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
ဤနည်းလမ်းများမှတစ်ဆင့် array_combine () ကို အသုံးပြုသောအခါအမှားအယွင်းများကိုသင်ရှောင်ရှားနိုင်ရန်နှင့်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီသော့များကိုင်တွယ်ပုံကိုညှိရန်သင်ရှောင်ရှားရန်သင်သေချာစေနိုင်သည်။