လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_filt ကို သုံး. 2D array ဖန်တီးသည့်အခါသာမန်အမှားများ ()

array_filt ကို သုံး. 2D array ဖန်တီးသည့်အခါသာမန်အမှားများ ()

M66 2025-06-05

PHP တွင် array_flution () သည်သတ်မှတ်ထားသောတန်ဖိုးများနှင့်အတူခင်းကျင်းမှုကိုဖြည့်ရန်အလွန်အဆင်ပြေသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည်ပုံမှန်တန်ဖိုးများကိုမြန်ဆန်စွာထုတ်ပေးရန်လိုအပ်သည့်အခါ၎င်းသည်များသောအားဖြင့် array များကိုစတင်ရန်အများအားဖြင့်အသုံးပြုလေ့ရှိသည်။ သို့သော်များစွာသော developer များစွာသည် array_flat_flution array များဖန်တီးရန် () တစ်ရှုထောင်ခင်းကျင်းရေးကိုဖန်တီးရန်အသေခံခြင်း () တွင်အသုံးအများဆုံးနားလည်မှုလွဲမှားခြင်းများသို့ကျဆင်းသွားသည်။ ဤဆောင်းပါးသည်ဤဘုံအမှားများကိုလေ့လာပြီး၎င်းတို့ကိုမည်သို့မှန်ကန်စွာရှောင်ရှားနိုင်မည်နည်း။

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

မေးခွန်းမတူးမီ, array_fille ၏အခြေခံအသုံးပြုမှုကိုအတိုချုပ်ပြန်လည်သုံးသပ်ကြပါစို့ () -

 $filledArray = array_fill(0, 5, 'default');
// ရလဒ်: ['default', 'default', 'default', 'default', 'default']

ဤလုပ်ဆောင်ချက်သည် parameters သုံးနာရီကိုလက်ခံသည်။

  1. အညွှန်းကိန်းကိုစတင်ပါ (မည်သည့်အညွှန်းကိန်းမှမည်သည့်အညွှန်းကိန်းမှ)

  2. Array အရှည် (ဒြပ်စင်အများအပြားနှင့်ပြည့်စုံ)

  3. တန်ဖိုးကိုဖြည့်ပါ

2 ။ သာမန်အမှားများ - တူညီသောခင်းကျင်းပုံကိုရည်ညွှန်းသည်

ကျွန်ုပ်တို့သည် array_fille ( 5 လိုင်းများကဲ့သို့သောရှုထောင့်နှစ်ခုကိုဖန်တီးရန်ကြိုးစားသောအခါ developer များ (3 ) ခုပါ 0 င်သည်။

 $matrix = array_fill(0, 5, array_fill(0, 3, 'default'));

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

 [
    ['default', 'default', 'default'],
    ['default', 'default', 'default'],
    ['default', 'default', 'default'],
    ['default', 'default', 'default'],
    ['default', 'default', 'default']
]

ဒါပေမယ့်ပြ problem နာက ဒီ subarrays ဟာတူညီတဲ့ခင်းကျင်းမှုတွေကိုတကယ်ကိုးကားထားတယ်

အကယ်. ကျွန်ုပ်တို့သည် subarrays ၏တန်ဖိုးကိုပြင်ဆင်ပါက -

 $matrix[0][0] = 'changed';

၎င်းသည်အတန်းအားလုံး၏ပထမတန်ဖိုးကို 'ပြောင်းလဲခြင်း' ဖြစ်လာစေသည်။

 [
    ['changed', 'default', 'default'],
    ['changed', 'default', 'default'],
    ['changed', 'default', 'default'],
    ['changed', 'default', 'default'],
    ['changed', 'default', 'default']
]

ဘာဖြစ်လို့လဲဆိုတော့ array_fille () သည် တတိယ parameter အသစ်တစ်ခုကိုတစ်ကြိမ်တွင်ခင်းကျင်းမည့်အစား array အသစ်တစ်ခုကိုဖန်တီးခြင်းထက်ခင်းကျင်းသည့်အချိန်များတွင်ခင်းကျင်းသည့်အခါ တူညီသောခင်းကျင်းမှု နှင့်ပြည့်နှက်နေသည်။

3 ။ မှန်ကန်သောနည်းလမ်း - ထူးခြားသော subarray တည်ဆောက်ရန်ကွင်းများကိုသုံးပါ

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

 $matrix = [];
for ($i = 0; $i < 5; $i++) {
    $matrix[$i] = array_fill(0, 3, 'default');
}

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

4 ။ function encapsulationulation များတွင် shared ကိုးကားချက်များကိုရှောင်ရှားရန်သတိထားပါ

အကယ်. ရှုထောင်ခင်းကျင်းမှုကိုဖန်တီးပေးသော function တစ်ခုကိုသင် encapsult လုပ်ပါက function ပြင်ပ၌ subarray များကိုဖန်တီးရန်နှင့်၎င်းတို့ကိုပြန်လည်အသုံးပြုပါ။ ဥပမာအားဖြင့်:

အမှားသရုပ်ပြ

 function createMatrix($rows, $cols, $defaultValue) {
    $rowTemplate = array_fill(0, $cols, $defaultValue);
    return array_fill(0, $rows, $rowTemplate);
}

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

မှန်ကန်သောအရေးအသား -

 function createMatrix($rows, $cols, $defaultValue) {
    $matrix = [];
    for ($i = 0; $i < $rows; $i++) {
        $matrix[] = array_fill(0, $cols, $defaultValue);
    }
    return $matrix;
}

5 ။ အစစ်အမှန်ဘဝလျှောက်လွှာများတွင်ဥပမာတစ်ခု

သင်အွန်လိုင်းဖြည့်စွက်ထားသောမေးခွန်းမျိုးဆက်သစ်ကိရိယာ ( https://m66.net/tools/quiz-generatorator ) ကိုတည်ဆောက်နေသည် ဆိုပါစို့

 $questionBoard = [];
for ($i = 0; $i < 10; $i++) {
    $questionBoard[] = array_fill(0, 5, null);
}

ဤချဉ်းကပ်မှုသည်မေးခွန်းဘုတ်အဖွဲ့တစ်ခုလုံးတွင်မှတ်ဉာဏ်ကိုမတော်တဆခွဲဝေခြင်းကိုရှောင်ရှားနိုင်ပြီးအသုံးပြုသူအပြန်အလှန်ဆက်သွယ်မှုသို့မဟုတ်နောက်ဆက်တွဲယုတ္တိဗေဒများတွင် bug များကိုဖြစ်ပေါ်စေသည်။

6 ။ နိဂုံးချုပ်

Array_filt_fille () သည်ထိရောက်သောကိရိယာတစ်ခုဖြစ်သည် ကွင်းဆက်များကိုအသုံးပြုခြင်းနှင့် subarray တစ်ခုချင်းစီသည်ဥပမာတစ်ခုစီသည်ဥပမာအသစ်တစ်ခုဖြစ်ရန်သေချာစေခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပိုမိုအားကောင်းသည့်နှင့်ကြိုတင်ခန့်မှန်းထားသောဒေတာတည်ဆောက်ပုံများကိုပိုမိုတည်ဆောက်နိုင်သည်။

PHP ရှိတန်ဖိုးနှင့်ရည်ညွှန်းယန္တရားကိုနားလည်ခြင်းသည်ဤပြ problem နာကိုရှောင်ရှားရန်သာမက,