လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_change_key_case_case () ကိုသုံးသောအခါမှတ်ဥာဏ် optimization မဟာဗျူဟာ

array_change_key_case_case () ကိုသုံးသောအခါမှတ်ဥာဏ် optimization မဟာဗျူဟာ

M66 2025-04-25

PHP တွင် Array_change_key_Key_case () သည်အများအားဖြင့်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ သို့သော်ကြီးမားသော array ကြီးမားသောနှင့်ကိုင်တွယ်ရန်လိုအပ်သည့်အခါဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းသည်အရေးပါသောမှတ်ဉာဏ်သုံးစွဲမှုကိုပြုလုပ်နိုင်သည်။ သင်ပိုမိုကောင်းမွန်သောအာရုံကိုမဂရုပြုပါကမှတ်ဉာဏ်အသုံးပြုမှုပြ the နာကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည်မှတ်ဥာဏ်အသုံးပြုမှုကိုပိုမိုကောင်းမွန်စေရန်နည်းလမ်းအချို့ကိုလေ့လာလိမ့်မည်။

1 ။ array_change_key_ky_case () ၏အခြေခံအသုံးပြုမှု ()

array_change_key_key_case () ၏ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ array : input array ။

  • $ အမှု - optional parameter သည်ပြောင်းလဲခြင်း, certion_lewer (default) ကိုစာလုံးအကြီးသို့ပြောင်းပါ။ စာလုံးအကြီးနှင့် Case_upper သည် စာလုံးအကြီးသို့ပြောင်းသည်။

2 ။ Memory ပြ problem နာခွဲခြမ်းစိတ်ဖြာခြင်း

array_change_key_key_case () သည် မူရင်းခင်းကျင်းမှု၏သော့အားလုံးပါ 0 င်သော array အသစ်တစ်ခုကိုဖန်တီးပြီးပြန်ပို့သည်။ ဒီတော့ Array ဟာကြီးမားတဲ့အခါမှာတော့မှတ်ဉာဏ်တွေအများကြီးတက်လိမ့်မယ်။ ဥပမာအားဖြင့်:

 $array = ['A' => 1, 'B' => 2, 'C' => 3];
$modifiedArray = array_change_key_case($array, CASE_LOWER);

ဤဥပမာတွင် PHP သည်မှတ်ဉာဏ်နေရာအသစ်ကိုချွေတာရန်အတွက်မှတ်ဉာဏ်နေရာအသစ်ကိုချွေတာသည် ကြီးမားသော arrays ကြီးများနှင့်ဆက်ဆံရာတွင်ဤအပိုဆောင်းမှတ်ဉာဏ် overhead သည်အထူးသဖြင့်ထင်ရှားသည်။

3 ။ မှတ်ဥာဏ်အသုံးပြုမှုကို optize လုပ်ရန်နည်းလမ်းများ

ကြီးမားသော array များကိုပြုပြင်သောအခါမှတ်ဉာဏ်ကိုသိမ်းဆည်းရန်အောက်ပါ optimization နည်းလမ်းများကိုအသုံးပြုနိုင်သည်။

3.1 မူရင်းခင်းကျင်းမှုကိုတိုက်ရိုက်ပြုပြင်ပါ

မူရင်းခင်းကျင်းမှု၏သော့များကိုသင်သိမ်းဆည်းရန်မလိုအပ်ပါကခင်းကျင်းအသစ်တစ်ခုကိုဖန်တီးမည့်အစားခင်းကျင်းမှုကိုပြင်ဆင်နိုင်သည်။ မူရင်းခင်းကျင်းမှုကိုတိုက်ရိုက်ပြုပြင်ခြင်းအားဖြင့်မိတ္တူတစ်ခုတည်ဆောက်ခြင်းကိုမှတ်ဉာဏ်သုံးစွဲမှုကိုရှောင်ရှားနိုင်သည်။

 $array = ['A' => 1, 'B' => 2, 'C' => 3];
// မူရင်းခင်းကျင်းကိုတိုက်ရိုက်ပြုပြင်ပါ
foreach ($array as $key => $value) {
    $newKey = strtolower($key);
    unset($array[$key]); // သော့အဟောင်းကိုဖျက်ပစ်ပါ
    $array[$newKey] = $value; // သော့အသစ်တစ်ခုထည့်ပါ
}

ဤနည်းအားဖြင့်သင်သည်အပိုမှတ်ဥာဏ်စားသုံးမှုကိုရှောင်ကြဉ်ပါ။

3.2 array_walk () function ကို သုံး.

Array_walk () element တစ်ခုစီတွင် array တစ်ခုစီတွင်လုပ်ဆောင်နိုင်သည်။ Array_walk () နှင့် string ပြောင်းလဲခြင်းလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ပြီးကူးယူခြင်းမပြုဘဲခင်းကျင်းခြင်း၏သော့များကိုသင်ပြုပြင်နိုင်သည်။

 $array = ['A' => 1, 'B' => 2, 'C' => 3];
array_walk($array, function(&$value, $key) {
    $newKey = strtolower($key);
    $value = ['key' => $newKey, 'value' => $value];
});

ဤနေရာတွင်သော့ချက်မှာမူရင်းခင်းကျင်းမှုတွင်ပြုပြင်ရန် array_walk () ကို သုံးရန်ဖြစ်သည်။ သတိပြုရန်မှာ array_walk () သည် array ၏ element တစ်ခုစီကိုကိုင်တွယ်ရန်နှင့်ဒြပ်စင်များ၏သော့နှင့်တန်ဖိုးများကိုညှိရန်သင့်အားသတိပြုပါ။

3.3 မီးစက်ကိုအသုံးပြုခြင်း

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

 function changeKeyCaseGenerator($array, $case = CASE_LOWER) {
    foreach ($array as $key => $value) {
        yield [($case === CASE_LOWER) ? strtolower($key) : strtoupper($key) => $value];
    }
}

$array = ['A' => 1, 'B' => 2, 'C' => 3];
foreach (changeKeyCaseGenerator($array) as $newPair) {
    print_r($newPair);
}

အဆိုပါမီးစက်သည်မှတ်ဥာဏ်များစွာမယူဘဲပစ္စည်းအားဖြင့် item item item ကိုလုပ်ဆောင်လိမ့်မည်။

3.4 PHP.INI ချိန်ညှိချက်များကိုညှိပါ

အကယ်. သင်၏ပရိုဂရမ်သည်ကြီးမားသောခင်းကျင်းမှုများစွာကိုကိုင်တွယ်ရာတွင်မှတ်ဉာဏ်ကန့်သတ်ချက်များနှင့်ရင်ဆိုင်နေရပါက PHP ၏မှတ်ဉာဏ်ကန့်သတ်ချက်ကိုတိုးမြှင့်ရန်သင်စဉ်းစားနိုင်သည်။ PHP.INI ဖိုင်ကိုပြုပြင်ခြင်းသို့မဟုတ် ini_set () ကို အသုံးပြုခြင်းဖြင့်မှတ်ဉာဏ်အဖုံးကိုတိုးမြှင့်နိုင်သည်။

 ini_set('memory_limit', '512M'); // မှတ်ဉာဏ်ကန့်သတ်တိုးမြှင့် 512MB

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

3.5 cache ကိုအသုံးပြုပြီး

အကယ်. သင်၏အစီအစဉ်သည်တူညီသောအချက်အလက်များကိုမကြာခဏလုပ်ဆောင်ရန်လိုအပ်ပါက cacheing ယန္တရားကိုအသုံးပြုပါ။ ပြောင်းလဲထားသော arrays များကိုသိမ်းဆည်းခြင်းအားဖြင့်ထပ်ခါတလဲလဲတွက်ချက်မှုများကိုအချိန်တိုင်းရှောင်ရှားနိုင်သည်။ သင် Redis သို့မဟုတ် Memcach ကဲ့သို့သော Cache ကိုဖြေရှင်းနည်းများကိုသုံးနိုင်သည်။

 // သင်အသုံးပြုသည်ဟုယူဆပါ Redis cache အဖြစ်
$redis = new Redis();
$redis->connect('m66.net');
$cacheKey = 'transformed_array';
$transformedArray = $redis->get($cacheKey);

if ($transformedArray === false) {
    // cache ထဲမှာဒေတာမရှိလျှင်,cache ကိုကူးပြောင်းနှင့်သိမ်းဆည်းပါ
    $transformedArray = array_change_key_case($array, CASE_LOWER);
    $redis->set($cacheKey, $transformedArray);
}

၎င်းသည်မိတ္တူပွားများစားသုံးမှုကိုထိရောက်စွာလျှော့ချနိုင်သည်။

4 ။ အကျဉ်းချုပ်

ကြီးမားသော array_change_key_key_case_case () , အဆင်ပြေသော function တစ်ခုဖြစ်နေစဉ်, အထက်ပါနည်းလမ်းအားဖြင့်ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါသင်သည်မှတ်ဥာဏ်အသုံးပြုမှုကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။

  • မူရင်းခင်းကျင်းမှုကိုတိုက်ရိုက်ပြုပြင်ရန်ကြိုးစားပါ။

  • ပုံတူကူးယူခြင်းမှရှောင်ရှားရန် Array_walk () ကို သုံးပါ။

  • 0 ယ်လိုအားနှင့်ပတ်သက်သည့်အချက်အလက်များကိုထုတ်လုပ်ရန်မီးစက်ကိုသုံးပါ။

  • PHP ရဲ့မှတ်ဉာဏ်ချိန်ညှိချက်များကိုညှိပါ။

  • ထပ်ခါတလဲလဲတွက်ချက်မှုကိုလျှော့ချရန် cache ယန္တရားကိုသုံးပါ။

ဤ optimization နည်းလမ်းများကသင့်အားမှတ်ဥာဏ်ကြီးများကိုပြုပြင်သည့်အခါမှတ်ဉာဏ်ကိုသိမ်းဆည်းရန်နှင့်လျှောက်လွှာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်ကူညီနိုင်သည်။