PHP တွင် array_combine () function ကို arrays array () function ကိုအသုံးပြုသည်။ တစ်ခုမှာ Associative Array တစ်ခုအဖြစ်ပေါင်းစပ်ရန်အသုံးပြုသည်။ ၎င်းသည်ရိုးရှင်းပြီးရိုးရှင်းသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်ဟုထင်ရသော်လည်းအချို့သောကိစ္စရပ်များတွင် array_combine () ကိုအသုံးပြုပြီးပြ problems နာများကို overwrite လုပ်ခြင်းကိုဖြစ်စေနိုင်သည်။ အဓိကပြ problem နာသည်များသောအားဖြင့်အဓိကအကြောင်းအရာများတွင်မတည်ရှိသည့်အခါများသောအားဖြင့်ဖြစ်သည်။
ပထမ ဦး စွာ array_comboine ၏အခြေခံအသုံးပြုမှုဥပမာကိုကြည့်ကြပါစို့။
<?php
$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 () သည် စနစ်တကျအလုပ်လုပ်သည်။ Associative Array အသစ်ကိုပြန်ပို့ခြင်းနှင့်တန်ဖိုးရှိ array $ တန်ဖိုးများကို ထည့် သွင်းထားသည်။
အကယ်. $ keys array တွင်ထပ်တူသော့ချက်များပါ 0 င ်ပါက, ဥပမာတစ်ခုကိုကြည့်ရအောင်။
<?php
$keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$result = array_combine($keys, $values);
print_r($result);
?>
ရလဒ်ရလဒ် -
Array
(
[a] => 1
[b] => 3
)
In this example, the 'b' key name appears repeatedly, resulting in the final result that only 'b' => 3 is preserved, and the original 'b' => 2 is overwritten.
ဤအမျိုးအစားကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုကျွန်ုပ်တို့ယူနိုင်သည်။
array_comboine () မသုံးမီသော့ချက်အမည်ခင်းကျင်းမှုတွင်မိတ္တူပွားများရှိသည်ကိုစစ်ဆေးရန်ကျွန်ုပ်တို့အား array_count_values () ကို သုံးနိုင်သည်။ မိတ္တူပွားများရှိပါကထပ်တူသော့ချက်အမည် (ဥပမာနောက်ဆက်ထပ်ပေါင်းထည့်ခြင်းစသည်) ကိုသင်ပထမ ဦး ဆုံးပြုလုပ်နိုင်သည်။
<?php
$keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
// သော့ချက်အမည် array တွင်မိတ္တူပွားများရှိမရှိစစ်ဆေးပါ
$keys_count = array_count_values($keys);
foreach ($keys_count as $key => $count) {
if ($count > 1) {
// သော့ချက်အမည်များကိုထပ်ထည့်ရန်နောက်ဆက်ထပ်ထည့်ပါ
$keys = array_map(function($item) use ($key) {
return $item === $key ? $key . '_dup' : $item;
}, $keys);
}
}
$result = array_combine($keys, $values);
print_r($result);
?>
ရလဒ်ရလဒ် -
Array
(
[a] => 1
[b_dup] => 2
[b] => 3
)
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်သော့ချက်အမည်များကို overwrite လုပ်ခြင်း၏ပြ problem နာကိုရှောင်ရှားပြီး _dup နောက်ဆက်နှင့်အတူထပ်ထည့်သည်။
နောက်နည်းတစ်နည်းမှာ array_myge () ကို အသုံးပြုရန်ဖြစ်သည်။ ပေါင်းစည်းသည့်အခါကျွန်ုပ်တို့သည်ထပ်ခါတလဲလဲသော့ချက်များကိုပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်, ကျပန်းနံပါတ်သို့မဟုတ်သော့အမည်ရှိထူးခွားတဲ့အမှတ်အသားတစ်ခုထည့်ခြင်းအားဖြင့် overwriting ကိုရှောင်ရှားနိုင်ပါတယ်။
<?php
$keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$keys = array_map(function($key) {
return $key . uniqid('_'); // သော့ချက်အမည်များကိုပုံတူပွားရန်ထူးခြားသောအမှတ်အသားကိုထည့်ပါ
}, $keys);
$result = array_combine($keys, $values);
print_r($result);
?>
ရလဒ်ရလဒ် -
Array
(
[a] => 1
[b_6434e34d27e85] => 2
[b_6434e34d27e86] => 3
)
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်သော့ချက်အမည်များကိုကျော်လွှားခြင်းကိုရှောင်ရှားပြီးထပ်တူသော့အမည်တစ်ခုစီကိုထူးခြားသောအမှတ်အသားတစ်ခုပေးထားသည်။
array_comboine () ကို သုံးတဲ့အခါမိတ္တူကူးတဲ့သော့ချက်နာမည်တွေက overwrite ပြ issues နာတွေကိုဖြစ်စေနိုင်တယ်။ ဤပြ problem နာကိုရှောင်ရှားရန်ကျွန်ုပ်တို့လုပ်နိုင်သည် -
သော့ချက်အမည်ခင်းကျင်း inv array ၌မိတ္တူပွားများရှိ, ရှိမရှိစစ်ဆေးပါ။ ထပ်တူပွားများရှိပါက overwriting မှရှောင်ရှားရန်သော့ချက်အမည်ကိုသင်ပြုပြင်နိုင်သည်။
Array_myge () ကိုသုံးပါ။
ဤနည်းလမ်းများမှတစ်ဆင့် array_combine () function ကိုအသုံးပြုခြင်းသည်အဓိကအမည်အားပြန်လည်ရေးသားခြင်းကိုမဖြစ်ပေါ်စေနိုင်ပါ။