လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Key Name ကိုမည်သို့ရှောင်ရှားနိုင်ပုံ ARRAY_COMBINE () တွင်ပြ problem နာကို Overwrite လုပ်ပါ။

Key Name ကိုမည်သို့ရှောင်ရှားနိုင်ပုံ ARRAY_COMBINE () တွင်ပြ problem နာကို Overwrite လုပ်ပါ။

M66 2025-05-13

PHP တွင် array_combine () function ကို arrays array () function ကိုအသုံးပြုသည်။ တစ်ခုမှာ Associative Array တစ်ခုအဖြစ်ပေါင်းစပ်ရန်အသုံးပြုသည်။ ၎င်းသည်ရိုးရှင်းပြီးရိုးရှင်းသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်ဟုထင်ရသော်လည်းအချို့သောကိစ္စရပ်များတွင် array_combine () ကိုအသုံးပြုပြီးပြ problems နာများကို overwrite လုပ်ခြင်းကိုဖြစ်စေနိုင်သည်။ အဓိကပြ problem နာသည်များသောအားဖြင့်အဓိကအကြောင်းအရာများတွင်မတည်ရှိသည့်အခါများသောအားဖြင့်ဖြစ်သည်။

array_combine ၏အခြေခံအသုံးပြုမှု ()

ပထမ ဦး စွာ 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 $ တန်ဖိုးများကို ထည့် သွင်းထားသည်။

သော့များကို overwrite လုပ်ထားတဲ့အဓိကအမည်များ

အကယ်. $ 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.

သော့များကိုရေးသားခြင်းကိုမည်သို့ရှောင်ရှားရမည်နည်း။

ဤအမျိုးအစားကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုကျွန်ုပ်တို့ယူနိုင်သည်။

1 ။ သော့နာမည်ကိုပုံတူပွားခြင်းရှိမရှိစစ်ဆေးပါ

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 နောက်ဆက်နှင့်အတူထပ်ထည့်သည်။

2 ။ Array_myge () ကိုသုံးပါ

နောက်နည်းတစ်နည်းမှာ 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 နာကိုရှောင်ရှားရန်ကျွန်ုပ်တို့လုပ်နိုင်သည် -

  1. သော့ချက်အမည်ခင်းကျင်း inv array ၌မိတ္တူပွားများရှိ, ရှိမရှိစစ်ဆေးပါ။ ထပ်တူပွားများရှိပါက overwriting မှရှောင်ရှားရန်သော့ချက်အမည်ကိုသင်ပြုပြင်နိုင်သည်။

  2. Array_myge () ကိုသုံးပါ။

ဤနည်းလမ်းများမှတစ်ဆင့် array_combine () function ကိုအသုံးပြုခြင်းသည်အဓိကအမည်အားပြန်လည်ရေးသားခြင်းကိုမဖြစ်ပေါ်စေနိုင်ပါ။