လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_keys ကိုအချည်းနှီးသောခင်းကျင်းမှုကိုကိုင်တွယ်ရန်မည်သို့အသုံးပြုရမည်နည်း

array_keys ကိုအချည်းနှီးသောခင်းကျင်းမှုကိုကိုင်တွယ်ရန်မည်သို့အသုံးပြုရမည်နည်း

gitbox 2025-05-29

အချည်းနှီးသောခင်းကျင်းသည်အဘယ်ကြောင့်ပြ problems နာများဖြစ်ပေါ်စေသနည်း။

အသုံးပြုသူမှပေးသောသော့စာရင်းတွင် အခြေခံ. နောက်ဆက်တွဲအသုံးပြုမှုအတွက် default တန်ဖိုးများကိုထုတ်လုပ်ရန်မျှော်လင့်သော function တစ်ခုကိုကျွန်ုပ်တို့ရေးသည်ဆိုပါစို့။

 function initDefaults(array $keys, $defaultValue) {
    return array_fill_keys($keys, $defaultValue);
}

$ သော့များသည် ဗလာဖြစ်လျှင် function သည်အချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့သည်။ အကယ်. ကုဒ်၏နောက်ဆက်တွဲယုတ္တိဗေဒသည်အချည်းနှီးသော array များကိုအထူးမကိုင်တွယ်ပါကအောက်ပါပြ problems နာများဖြစ်ပေါ်နိုင်သည်။

  • Traversal မအောင်မြင်ပါ - loop body သည်စီးပွားရေးယုတ္တိဗေဒအပေါ်သက်ရောက်မှုမရှိပါ။

  • ဒေတာပျောက်ဆုံးနေသော : မျှော်လင့်ထားသည့် default key-value အတွဲများကိုထုတ်လုပ်ခြင်းမရှိပါ။

  • ပရိုဂရမ်ချွင်းချက် - ဥပမာအားဖြင့် array element တွေကိုသုံးတဲ့အခါ undefined အညွှန်းကိန်းအမှားတစ်ခုဖြစ်ပွားခဲ့သည်။


အချည်းနှီးသောခင်းကျင်းမှုကြောင့်ဖြစ်ရတဲ့ပြ problems နာတွေကိုထိထိရောက်ရောက်ရှောင်ရှားနိုင်မှာနည်း။

1 ။ ဗလာ arrays ကြိုတင် detect

Array_fatch_Keys ကိုမခေါ်မီသော့ချက်ခင်းကျင်းမှုရှိမရှိကို ဦး စွာဆုံးဖြတ်ပါ။

 $keys = getKeysFromUser(); // တစ် ဦး အချည်းနှီးသောခင်းကျင်းရန်ပြန်ပို့နိုင်ပါသည်

if (empty($keys)) {
    // စီးပွားရေးလိုအပ်ချက်များအရသိရသည်,အပြောင်းအလဲနဲ့အစီအစဉ်ကိုရွေးပါ:
    // 1) default keys တစ်ခုခင်းကျင်းပါ
    // 2) ချွင်းချက်ချက်ချင်းပစ်
    // 3) တစ် ဦး အချည်းနှီးသောခင်းကျင်းကိုတိုက်ရိုက်ပြန်လာနှင့်နောက်ဆက်တွဲအပြောင်းအလဲနဲ့ယုတ္တိဗေဒအတွက်သဟဇာတဖြစ်ပါတယ်

    $keys = ['defaultKey']; // ဒီမှာ default key ကိုသုံးပါ
}

$array = array_fill_keys($keys, 0);

ဤနည်းလမ်းသည် ဒေါ်လာ array တွင်အနည်းဆုံးဒြပ်စင်တစ်ခုပါ 0 င်သည်။

2 ။ ပုံမှန် key စာရင်းကိုသတ်မှတ်ပါ

အကယ်. စီးပွားရေးလုပ်ငန်းများကိုခွင့်ပြုပါကပုံသေသတ်မှတ်ထားသည့်ပုံသေသော့များကိုအခြားရွေးချယ်စရာတစ်ခုအဖြစ်သတ်မှတ်နိုင်သည်။

 function safeFillKeys(array $keys, $defaultValue, array $defaultKeys = ['default']) {
    if (empty($keys)) {
        $keys = $defaultKeys;
    }
    return array_fill_keys($keys, $defaultValue);
}

ခေါ်တဲ့အခါ:

 $result = safeFillKeys([], 0, ['key1', 'key2']);
print_r($result);

ဤနည်းအားဖြင့်အချည်းနှီးသောခင်းကျင်းမှုကိုဖြတ်သန်းနေလျှင်ပင်သင့်တော်သောပုံမှန်ဖွဲ့စည်းပုံကိုပြန်ပို့နိုင်သည်။

3 ။ Merge မဟာဗျူဟာကိုသုံးပါ

လွန်ကျူးခြင်းကို key array ဖြင့်ပေါင်းစပ်ပြီး default key array သည်နောက်ဆုံးပြင်ဆင်မှုသည်ဗလာမဟုတ်ပါ

 $keys = array_unique(array_merge($keys, ['fallbackKey']));
$array = array_fill_keys($keys, null);

Array_uniqueique သည် သော့ကိုထပ်ခါတလဲလဲမလုပ်နိုင်ဟုအာမခံသည်။ Array_merge သည် default key ကိုဖြည့်ဆည်းပေးသည်။ ၎င်းသည်အချည်းနှီးသောခင်းကျင်းအခြေအနေကိုရှောင်ရှားသည်။

4 ။ အချည်းနှီးသောခင်းကျင်းနှင့်အတူသဟဇာတစီးပွားရေးယုတ္တိဗေဒအတွက်သဟဇာတ

array_put_eys ၏ခေါ်ဆိုမှုအချိန်ကိုသင်မထိန်းချုပ်နိုင်ပါကရလဒ်ကိုအသုံးပြုသောအခါသင်တရားစီရင်နိုင်ခဲ့သည် -

 $array = array_fill_keys($keys, 0);

if (empty($array)) {
    // အထူးကုသမှု,ဥပမာအားဖြင့်, ပုံမှန်တန်ဖိုးကိုစတင်ပါ
    $array = ['default' => 0];
}

// နောက်ဆက်တွဲအပြောင်းအလဲနဲ့ဆက်လက်

အကျဉ်းချုပ်

array_put_eys သည်တိကျသောနှင့်ထိရောက်သော function တစ်ခုဖြစ်သည်။ သို့သော် input key array သည်အချည်းနှီးဖြစ်သည့်အခါအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့ခြင်း၏အပြုအမူသည်လျှို့ဝှက်အန္တရာယ်များကိုအစီအစဉ်သို့ပို့ဆောင်နိုင်သည်။ ကျိုးကြောင်းဆီလျော်ကြိုတင်ကာကွယ်မှုများတွင် -

  • input array သည်ကြိုတင်မဲခြင်းရှိမရှိဆုံးဖြတ်ရန်,

  • default key တန်ဖိုးကိုသတ်မှတ်ပါ။

  • ဖြတ်သန်းသောသော့ချက်ခင်းကျင်းမှုကို default key array ဖြင့်ပေါင်းစည်းပါ။

  • စီးပွားရေးယုတ္တိဗေဒဆိုင်ရာဗလာခင်းကျင်းအခြေအနေများနှင့်သဟဇာတဖြစ်သည်။

၎င်းသည်ပရိုဂရမ်၏ကြံ့ခိုင်မှုနှင့်တည်ငြိမ်မှုကိုသေချာစေရန်နှင့်အချည်းနှီးသောခင်းကျင်းမှုများကြောင့်ဖြစ်ပေါ်လာသောယုတ္တိအားနည်းချက်များသို့မဟုတ်အမှားအယွင်းများကိုရှောင်ရှားနိုင်သည်။


 // Code Page:လုံခြုံစိတ်ချရသောအသုံးပြုမှု array_fill_keys
function safeArrayFillKeys(array $keys, $value, array $defaultKeys = ['default']) {
    if (empty($keys)) {
        $keys = $defaultKeys;
    }
    return array_fill_keys($keys, $value);
}

$keys = []; // ဖြစ်ကောင်းဗလာ
$result = safeArrayFillKeys($keys, 0);
print_r($result);