လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_change_key_Key_case () အရာဝတ်ထုများအတွက်အလုပ်လုပ်ပါသလား။

array_change_key_Key_case () အရာဝတ်ထုများအတွက်အလုပ်လုပ်ပါသလား။

M66 2025-04-28

PHP တွင် Array_change_Key_Key_case () သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော်ဤလုပ်ဆောင်မှုကို stdclass အရာဝတ်ထုပေါ်တွင်တိုက်ရိုက်အသုံးပြုနိုင်ပါသလား။ ဤဆောင်းပါးသည်ဤပြ issue နာကိုအတူတကွလေ့လာရန်သင့်အားယူပါလိမ့်မည်။

array_change_key_ky_case () ကဘာလဲ။

array_change_key_key_case () သည်ခင်းကျင်းရန်နှင့်စာလုံးအကြီးများသို့ပြောင်းလဲခြင်းကိုပြောင်းလဲစေသည်။

 $data = [
    "Name" => "Alice",
    "AGE" => 25
];

$lowercase = array_change_key_case($data, CASE_LOWER);
print_r($lowercase);

ရလဒ်ရလဒ် -

 Array
(
    [name] => Alice
    [age] => 25
)

Stdclass ဆိုတာဘာလဲ။

PHP တွင် stdclass သည်အသုံးအများဆုံးအမည်မသိအရာဝတ်ထုအမျိုးအစားဖြစ်သည်။ ဥပမာအားဖြင့် JSON_Decode မှတဆင့် JSON string ကို ဖြုတ်ချသည့် ဂျွန်ဆင် string ကိုဖြုတ်ချသည့်အခါ,

 $json = '{"Name": "Alice", "AGE": 25}';
$obj = json_decode($json);
print_r($obj);

ရလဒ်ရလဒ်မှာ -

 stdClass Object
(
    [Name] => Alice
    [AGE] => 25
)

array_change_key_Key_case () ကို stdclass အတွက်တိုက်ရိုက်အသုံးပြုနိုင်ပါသလား။

အဖြေမှာ - ၎င်းကိုတိုက်ရိုက်မသုံးနိုင်ပါarray_change_key_key_case_case () သည် input parameters များကိုသာလက်ခံသည်။ အကယ်. သင်သည် stdclass အရာဝတ်ထုကိုဖြတ်သန်းရန်ကြိုးစားပါကသတိပေးသို့မဟုတ်အမှားတစ်ခုရလိမ့်မည်။

ဥပမာ -

 $json = '{"Name": "Alice", "AGE": 25}';
$obj = json_decode($json);

$result = array_change_key_case($obj, CASE_LOWER);

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

 Warning: array_change_key_case() expects parameter 1 to be array, object given

ဒါကြောင့် အရာဝတ်ထုကိုအရင်ခင်းကျင်းပြောင်းဖို့ လိုတယ်။ ပြီးတော့ function ကိုသုံးပါ။

မှန်ကန်သောနည်းလမ်း - ပထမတစ်ခုသို့ incray သို့ကူးပြောင်းပါ

stdclass ကို အမျိုးအစားပြောင်းလဲခြင်း (သို့ ) get_object_vars () ကို သုံး. stdclass သို့ array သို့ပြောင်းနိုင်သည်။

 $json = '{"Name": "Alice", "AGE": 25}';
$obj = json_decode($json);

// နည်းလမ်း 1:အမျိုးအစားပြောင်းလဲခြင်း
$arr = (array) $obj;

// နည်းလမ်း 2:get_object_vars()
$arr2 = get_object_vars($obj);

// အသုံးပြု array_change_key_case
$lowercase = array_change_key_case($arr, CASE_LOWER);
print_r($lowercase);

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

 Array
(
    [name] => Alice
    [age] => 25
)

အကယ်. နောက်ဆုံးရလဒ်ကိုအရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲရန် လိုအပ်ပါကသင်လုပ်နိုင်သည် -

 $lower_obj = (object) $lowercase;
print_r($lower_obj);

ရလဒ် -

 stdClass Object
(
    [name] => Alice
    [age] => 25
)

လက်တွေ့ကျသော application အခြေအနေများ

သင်အသုံးပြုသူအချက်အလက်များကို interface မှရရှိသည် (ဥပမာ https://api.m66.net/user/info )

 $response = file_get_contents('https://api.m66.net/user/info');
$data = json_decode($response); // ပုံမှန်ဖြစ်ပါတယ် stdClass

$normalized = array_change_key_case((array) $data, CASE_LOWER);
print_r($normalized);

ဤနည်းအားဖြင့် interface မှပြန်လာသောနယ်ပယ်များသည်စာလုံးအကြီးများ, အသေးများသို့မဟုတ်ရောနှောခြင်းဖြစ်စေ,

အကျဉ်းချုပ်

  • array_change_key_key_case () ကိုသာတပ်ဆင်နိုင်;

  • stdclass ပထမ ဦး ဆုံး array သို့ကူးပြောင်းရမည်ဖြစ်သည်;

  • ပြောင်းလဲခြင်းပြီးနောက်ဤ function ကိုခေါ်ရန်အကြံပြုသည်။

  • ပြုပြင်ပြီးတဲ့နောက်လိုအပ်ရင်အရာဝတ်ထုကိုလည်းပြန်ပို့နိုင်တယ်။

အထူးသဖြင့်ပြင်ပ interfaces များနှင့်ချိတ်ဆက်သောအခါ JSON ဒေတာကိုလုပ်ဆောင်သောအခါဤလှည့်ကွက်ကိုအလွန်အသုံးများလေ့ရှိသည်။