လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Multidimensional Array တွင် array_comboine ၏အလွဲသုံးစားမှုကြောင့်ဖြစ်ပေါ်လာသောယုတ္တိအမှားများကိုဖြေရှင်းခြင်း

Multidimensional Array တွင် array_comboine ၏အလွဲသုံးစားမှုကြောင့်ဖြစ်ပေါ်လာသောယုတ္တိအမှားများကိုဖြေရှင်းခြင်း

M66 2025-05-13

PHP ပရိုဂရမ်တွင် array_combine သည်အသုံးများသောတပ်ဆင်ထားသောစစ်ဆင်ရေးဖြစ်သည်။ ၎င်းသည်ခင်းကျင်းမှုအသစ်၏သော့နှင့်အခြားခင်းကျင်းမှု၏တန်ဖိုးနှင့်အခြားခင်းကျင်းမှု၏တန်ဖိုးနှင့်အတူခင်းကျင်းမှုအသစ်၏တန်ဖိုးနှင့်အတူခင်းကျင်းမှုအသစ်တစ်ခုဖန်တီးရန်အသုံးပြုသည်။ သို့သော် Multidimensional Array များအနေဖြင့် array_combine ၏အလွဲသုံးစားမှုသည်အလွန်ခက်ခဲသောယုတ္တိအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤအမှားများ၏အကြောင်းရင်းများကိုနားလည်ခြင်းနှင့်၎င်းတို့အား၎င်းတို့အားမည်သို့ဖြေရှင်းရန်နှင့်ပြင်ဆင်ရန်နှင့်ပြင်ဆင်ရန်နှင့်ပြင်ဆင်ရန်မရှိမဖြစ်လိုအပ်သည်။

1 ။ array_combine ၏အခြေခံအသုံးပြုမှု

array_combeind function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_combine(array $keys, array $values): array

ဤလုပ်ဆောင်ချက်သည် Array parrays နှစ်ခုဖြစ်သောသော့ချက်ဖြစ်သောသော့ချက်ဖြစ်သောသော့သည်သော့ချက်ဖြစ်သောသော့ချက်, အကယ်. array နှစ်ခုရှိဒြပ်စင်အရေအတွက်သည်ကွဲပြားခြားနားလျှင်, ပစ်ချ ခံရ လိမ့်မည်။

ဥပမာအားဖြင့်:

 $keys = ['a', 'b', 'c'];
$values = [1, 2, 3];
$result = array_combine($keys, $values);

print_r($result);

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

 Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

2 ။ array_comboine ၏အလွဲသုံးစားမှုကြောင့်ဖြစ်ပေါ်လာသောအမှား

Array_comBine မှမျှော်လင့်ထားသည့်နှစ်ခု array များသည် planar, i.e. တစ်ခုချင်းစီကိုခင်းကျင်းမှုတစ်ခုစီသည်ရှုထောင့်တစ်ခုဖြစ်သည်။ Multidimensimensional Array တွင် Array_combine ကို အသုံးပြုသောအခါအောက်ပါပြ problems နာနှစ်ခုကိုသင်ကြုံတွေ့ရနိုင်သည်။

အမှား 1 - သော့နှင့်တန်ဖိုးခင်းကျင်းဒြပ်စင်အရေအတွက်သည်မကိုက်ညီပါ

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

ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည်အမှားအယွင်းရှိသည်။

 $keys = [['name', 'age'], ['city']];
$values = ['John', '25', 'New York'];
$result = array_combine($keys, $values);  // အမှား

ဤကုဒ်သည် multidimensional array ကိုသော့ချက်ခင်းကျင်းအဖြစ်အသုံးပြုရန်ကြိုးစားသည် ထို့ကြောင့်အဆုံး၌ပြန်လာသောရလဒ်သည် မှားယွင်းသော ကြောင့်သတိပေးချက်တစ်ခုချလိမ့်မည်။

အမှား 2 - Array အသိုက်ဖွဲ့စည်းပုံသည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီပါ

အသိုက် Arrays နှင့်ဆက်ဆံရာတွင်ကျွန်ုပ်တို့သည်အတွင်းပိုင်းနှင့်အပြင်ဘက် Array များကိုပေါင်းစပ်ချင်ကြသည်။ array_combine ၏အလွဲသုံးစားမှုသည်ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာပုံပျက်စေနိုင်သည်။ Array_combine သည် အသိုက်ဖွဲ့စည်းပုံများကိုနားမလည်သောကြောင့်၎င်းသည်ကြိုတင်မမြင်နိုင်သောရလဒ်များနှင့်အချက်အလက်ဆုံးရှုံးမှုများကိုပင် ဦး တည်စေသည်။

ဥပမာအားဖြင့်:

 $keys = [['id'], ['name']];
$values = ['1', 'John'];
$result = array_combine($keys, $values);  // အမှား

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

3 ။ ဤအမှားများကိုဖြေရှင်းနည်း

ဤအမှားများကိုဖြေရှင်းရန်အောက်ပါအဆင့်များကိုသင်ပြုလုပ်နိုင်သည် -

အဆင့် 1 - ခင်းကျင်းမှု၏ဖွဲ့စည်းပုံကိုစစ်ဆေးပါ

array_combovine အတွက် array နှစ်ခုလုံးသည်ရှုထောင့်များဖြစ်သည်ကိုသေချာအောင်လုပ်ပါ။ အကယ်. သင်သည် multidimensimensal array များကိုလုပ်ဆောင်နေပါက array_map or array_column ကို အသုံးပြု. ခင်းကျင်းမှုကိုသင်ချထားနိုင်သည်။

ဥပမာအားဖြင့်, သင့်တွင် Multidimensional Array ခလုတ်များ ရှိသည်ဆိုပါစို့, သင် flatten ရန် array_map ကို သုံးနိုင်သည်ဆိုပါစို့။

 $keys = [['id'], ['name']];
$flatKeys = array_map('current', $keys);  // ပြားချပ်ချပ်အဓိကခင်းကျင်း

ဤနည်းဖြင့် $ flatkeys ['id' ',' name ''] ဖြစ်လာသည်။ ၎င်းကို တန်ဖိုးများ နှင့်မှန်ကန်စွာတွဲဖက်ရန်သင်အသုံးပြုနိုင်သည်။

အဆင့် 2 - ခင်းကျင်းမှု၏အရှည်သည်တန်းတူဖြစ်ကြောင်းသေချာပါစေ

Array_comBine ကို မခေါ်မီ, array နှစ်ခု၏ဒြပ်စင်အရေအတွက်သည်အတူတူပင်ဖြစ်ကြောင်းသေချာပါစေ။ သင် ရေတွက်သည့် function ကို ဖြတ်. ခင်းကျင်းမှု၏အရှည်ကိုစစ်ဆေးနိုင်သည်။

 if (count($keys) !== count($values)) {
    echo 'array အရှည်မတိုက်ဆိုင်,ပေါင်းစည်းလို့မရပါဘူး';
} else {
    $result = array_combine($keys, $values);
}

အဆင့် 3: output ကို debug

Contents သည်မျှော်လင့်ထားသည့်အတိုင်းအထူးသဖြင့် multidimensional arrays များကို debing လုပ်သည့်အခါကြည့်ရှုရန်ခင်း ကျင်းခြင်း သို့မဟုတ် print_r ကို သုံးပါ။

 print_r($keys);
print_r($values);

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

4 ။ ဤအမှားများကိုမည်သို့ဖြေရှင်းရမည်နည်း

Methat Multi-dacrasal arrays process လုပ်ရန် array_column ကို သုံးပါ

အကယ်. သင်သည် Multidimensional Array မှသော့ချက်များသို့မဟုတ်တန်ဖိုးများအဖြစ်တိကျသောကော်လံများကိုထုတ်ယူရန်လိုအပ်ပါကသက်ဆိုင်ရာအချက်အလက်များကိုထုတ်ယူရန်အတွက် array_colnum ကို သုံးနိုင်သည်။ ဥပမာအားဖြင့်, သင့်တွင်အသုံးပြုသူ၏အချက်အလက်များပါ 0 င်သည့် 2D ခင်းကျင်းမှုရှိပါကလိပ်စာတစ်ခုအဖြစ် ID ကော်လံရှိသည်။

 $users = [
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane']
];

$keys = array_column($users, 'id');
$values = array_column($users, 'name');

$result = array_combine($keys, $values);

print_r($result);

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

 Array
(
    [1] => John
    [2] => Jane
)

fix နည်းလမ်း 2. array_map ကိုအသုံးပြုပြီးခင်းကျင်းမှုကိုပြားစေပါ

အကယ်. သော့ချက်ခင်းကျင်းမှုနှင့်တန်ဖိုးခင်းကျင်းသူများသည် Multidimensional များ၌ပါ 0 င်ပါက၎င်းတို့ကိုရှုထောင့်များတပ်ဆင်ခြင်းများသို့ပြောင်းလဲရန်အတွက် array_map ကို သုံး. array_combine ဟုခေါ်ဆိုနိုင်သည်။

 $keys = [['id'], ['name']];
$values = ['1', 'John'];

$flatKeys = array_map('current', $keys);  // ပြားချပ်ချပ်အဓိကခင်းကျင်း
$result = array_combine($flatKeys, $values);

print_r($result);

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

 Array
(
    [id] => 1
    [name] => John
)

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

PHP တွင် array_comboine ကို အသုံးပြုသောအခါ, သင်၌ခင်းကျင်းနှစ် ဦး သည်ပြားချပ်ချပ်နှစ်ချောင်းရှိကြောင်းသေချာအောင်လုပ်ရမယ်။ Multiens-data_map or array_column ကိုသုံးပါ။ အချက်အလက်ဖွဲ့စည်းပုံကိုပြားစေပြီးအလွဲသုံးစားမှုကြောင့်ယုတ္တိအမှားများကိုရှောင်ရှားရန် Array_Map သို့မဟုတ် array_column ကိုသုံးပါ။ အကယ်. သင်သည်အလားတူပြ problems နာများကြုံတွေ့ရပါကအထက်တွင်ဖော်ပြထားသည့်အတိုင်းပြ troubl နာများကိုဖြေရှင်းခြင်းနှင့်ပြင်ဆင်ခြင်းသည်သင့်အားပြ the နာကိုဖြေရှင်းရန်နှင့်ပိုမိုခိုင်မာသည့်ကုဒ်ကိုရေးရန်ကူညီနိုင်သည်။