လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဘယ်ကြောင့် array_change_key_key_case () အသိုက် Arrays ကိုင်တွယ်လို့မရဘူး?

အဘယ်ကြောင့် array_change_key_key_case () အသိုက် Arrays ကိုင်တွယ်လို့မရဘူး?

M66 2025-04-25

PHP တွင် Array_change_Key_case_case () သည်လက်တွေ့ကျသော function တစ်ခုဖြစ်ပြီးလက်အောက်ရှိအမည်များအားလုံးကိုစာလုံးအကြီးများသို့ပြောင်းလဲစေသောလက်တွေ့လုပ်ဆောင်မှုဖြစ်သည်။ သို့သော်လူအများစုကဤလုပ်ဆောင်မှုကိုပထမဆုံးအကြိမ်အသုံးပြုသောအခါပြ a နာတစ်ခုကြုံတွေ့ရလိမ့်မည်။ အဲဒီလို့ဘာဖြစ်လို့? ဘယ်လိုအလုပ်လုပ်သလဲ ဤဆောင်းပါးသည်သင့်အားဥပမာအားဖြင့်တစ်ဆင့်တဆင့်တစ် ဦး တည်းအားဖြင့်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။

1 ။ ဒီ function ကို၏အခြေခံအသုံးပြုမှု

Array_change_Key_case_case () ၏အခြေခံအသုံးပြုမှုကို ဦး စွာကြည့်ကြပါစို့။

 $data = [
    "Name" => "Alice",
    "Age" => 25,
    "Email" => "alice@m66.net"
];

$result = array_change_key_case($data, CASE_LOWER);

print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [name] => Alice
    [age] => 25
    [email] => alice@vv99.net
)

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

2 ။ Array တွင်အသိုက်ဖွဲ့စည်းပုံရှိသည့်အခါ ...

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

 $data = [
    "Name" => "Bob",
    "Info" => [
        "Email" => "bob@m66.net",
        "City" => "New York"
    ]
];

$result = array_change_key_case($data, CASE_LOWER);

print_r($result);

ရလဒ်ရလဒ် -

 Array
(
    [name] => Bob
    [info] => Array
        (
            [Email] => bob@vv99.net
            [City] => New York
        )
)

သင်သတိပြုမိပါသလား Info Subarray ၏အဓိကအမည်မှာမပြောင်းလဲပါ။ ဘာဖြစ်လို့လဲဆိုတော့

Array_change_key_Key_case () သည် inarray ၏ပထမဆုံးအလွှာ၏အမည်များကိုသာအကျိုးသက်ရောက်သည်။

3 ။ လုပ်ဆောင်မှုသည်မည်သို့အလုပ်လုပ်သည်

တရားဝင်စာရွက်စာတမ်းများနှင့်အရင်းအမြစ်ကုဒ်အဆင့်မှ array_change_key_Key_Ane_case () ၏အနှစ်သာရသည် array ကို ဖြတ်. top-level key name ကို တိုက်ရိုက်ကိုင်တွယ်ရန်ဖြစ်သည်ကိုကျွန်ုပ်တို့သိနိုင်သည်။ အကယ်. တန်ဖိုးတစ်ခုသည် stray type အမျိုးအစားတစ်ခုဖြစ်ပါက၎င်းသည်နောက်ထပ်အားပြန်လည်ရယူရန်အတွက်အတွင်း၌ ထပ်မံ. ပြုပြင်ရန်အတွင်း၌မသွားပါ။

တစ်နည်းပြောရရင်တော့:

 foreach ($array as $key => $value) {
    $newKey = strtolower($key); // သို့မဟုတ် strtoupper($key)
    $newArray[$newKey] = $value;
}

ဒါကရိုးရှင်းပါတယ်။ Realures မရှိပါ, နက်နဲသောဖွဲ့စည်းပုံမရှိပါ, အလွန်ထိရောက်သောဖွဲ့စည်းပုံမရှိပါ, သို့သော်၎င်းသည်အလွန် "ကန့်သတ်" ဖြစ်သည်။

အသိုက်ကိုထောက်ပံ့ချင်ရင်ဘာလုပ်ရမလဲ။

သငျသညျအသိုက် Array ၏အဓိကအမည်များကိုအတူတကွပြောင်းလဲလိုလျှင်, သင် recursive function ကိုသင်ကိုယ်တိုင်ရေးသားဖို့လိုအပ်ပါတယ်။ ဥပမာအားဖြင့်:

 function change_keys_case_recursive(array $array, int $case = CASE_LOWER): array {
    $newArray = [];
    foreach ($array as $key => $value) {
        $newKey = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
        $newArray[$newKey] = is_array($value) ? change_keys_case_recursive($value, $case) : $value;
    }
    return $newArray;
}

$data = [
    "Name" => "Charlie",
    "Info" => [
        "Email" => "charlie@m66.net",
        "City" => "London"
    ]
];

$result = change_keys_case_recursive($data, CASE_LOWER);

print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [name] => Charlie
    [info] => Array
        (
            [email] => charlie@vv99.net
            [city] => London
        )
)

အရာအားလုံးယခုအများကြီးပိုမိုကျိုးကြောင်းဆီလျော်ပုံရသည်!

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

  • array_change_key_key_case_case () သည်ပြန်လည်ထူထောင်ရေးမဟုတ်သောကြောင့်ခင်းကျင်းမှု၏ပထမ ဦး ဆုံးအလွှာရှိသော့များပေါ်တွင်သာလုပ်ဆောင်သည်။

  • keynnes များကို multidimensimensional array များသို့ပြောင်းလဲရန်လိုအပ်ပါကသင်စိတ်ကြိုက်ပြုပြင်ခြင်း function ကိုအသုံးပြုရန်လိုအပ်သည်။

  • ၎င်းသည် PHP တွင်ပါ 0 င်သောလုပ်ဆောင်ချက်များစွာပါသောဘုံပြ problem နာလည်းဖြစ်သည်။

ဤဆောင်းပါးသည်ဤပြ problem နာကိုသေချာစွာနားလည်နိုင်ရန်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။