PHP တွင် array_flution () သည်သတ်မှတ်ထားသောတန်ဖိုးများနှင့်အတူခင်းကျင်းမှုကိုဖြည့်ရန်အလွန်အဆင်ပြေသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည်ပုံမှန်တန်ဖိုးများကိုမြန်ဆန်စွာထုတ်ပေးရန်လိုအပ်သည့်အခါ၎င်းသည်များသောအားဖြင့် array များကိုစတင်ရန်အများအားဖြင့်အသုံးပြုလေ့ရှိသည်။ သို့သော်များစွာသော developer များစွာသည် array_flat_flution array များဖန်တီးရန် () တစ်ရှုထောင်ခင်းကျင်းရေးကိုဖန်တီးရန်အသေခံခြင်း () တွင်အသုံးအများဆုံးနားလည်မှုလွဲမှားခြင်းများသို့ကျဆင်းသွားသည်။ ဤဆောင်းပါးသည်ဤဘုံအမှားများကိုလေ့လာပြီး၎င်းတို့ကိုမည်သို့မှန်ကန်စွာရှောင်ရှားနိုင်မည်နည်း။
မေးခွန်းမတူးမီ, array_fille ၏အခြေခံအသုံးပြုမှုကိုအတိုချုပ်ပြန်လည်သုံးသပ်ကြပါစို့ () -
$filledArray = array_fill(0, 5, 'default');
// ရလဒ်: ['default', 'default', 'default', 'default', 'default']
ဤလုပ်ဆောင်ချက်သည် parameters သုံးနာရီကိုလက်ခံသည်။
အညွှန်းကိန်းကိုစတင်ပါ (မည်သည့်အညွှန်းကိန်းမှမည်သည့်အညွှန်းကိန်းမှ)
Array အရှည် (ဒြပ်စင်အများအပြားနှင့်ပြည့်စုံ)
တန်ဖိုးကိုဖြည့်ပါ
ကျွန်ုပ်တို့သည် 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 အသစ်တစ်ခုကိုဖန်တီးခြင်းထက်ခင်းကျင်းသည့်အချိန်များတွင်ခင်းကျင်းသည့်အခါ တူညီသောခင်းကျင်းမှု နှင့်ပြည့်နှက်နေသည်။
ဒီပြ problem နာကိုဖြေရှင်းဖို့ subarray တစ်ခုချင်းစီဟာလွတ်လပ်တဲ့ဥပမာတစ်ခုဖြစ်ကြောင်းသေချာအောင်လုပ်ဖို့လိုတယ်။ ဤသို့ပြုလုပ်ရန်အလုံခြုံဆုံးနည်းလမ်းမှာကွင်းဆက်ကိုအသုံးပြုရန်ဖြစ်သည်။
$matrix = [];
for ($i = 0; $i < 5; $i++) {
$matrix[$i] = array_fill(0, 3, 'default');
}
၎င်းသည်အတန်းတစ်ခုစီ၏ခင်းကျင်းမှုသည်မိတ္တူအသစ်တစ်ခုဖြစ်ပြီးတစ် ဦး နှင့်တစ် ဦး အကျိုးသက်ရောက်မည်မဟုတ်ပါ။
အကယ်. ရှုထောင်ခင်းကျင်းမှုကိုဖန်တီးပေးသော 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;
}
သင်အွန်လိုင်းဖြည့်စွက်ထားသောမေးခွန်းမျိုးဆက်သစ်ကိရိယာ ( https://m66.net/tools/quiz-generatorator ) ကိုတည်ဆောက်နေသည် ဆိုပါစို့ ။
$questionBoard = [];
for ($i = 0; $i < 10; $i++) {
$questionBoard[] = array_fill(0, 5, null);
}
ဤချဉ်းကပ်မှုသည်မေးခွန်းဘုတ်အဖွဲ့တစ်ခုလုံးတွင်မှတ်ဉာဏ်ကိုမတော်တဆခွဲဝေခြင်းကိုရှောင်ရှားနိုင်ပြီးအသုံးပြုသူအပြန်အလှန်ဆက်သွယ်မှုသို့မဟုတ်နောက်ဆက်တွဲယုတ္တိဗေဒများတွင် bug များကိုဖြစ်ပေါ်စေသည်။
Array_filt_fille () သည်ထိရောက်သောကိရိယာတစ်ခုဖြစ်သည် ။ ကွင်းဆက်များကိုအသုံးပြုခြင်းနှင့် subarray တစ်ခုချင်းစီသည်ဥပမာတစ်ခုစီသည်ဥပမာအသစ်တစ်ခုဖြစ်ရန်သေချာစေခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပိုမိုအားကောင်းသည့်နှင့်ကြိုတင်ခန့်မှန်းထားသောဒေတာတည်ဆောက်ပုံများကိုပိုမိုတည်ဆောက်နိုင်သည်။
PHP ရှိတန်ဖိုးနှင့်ရည်ညွှန်းယန္တရားကိုနားလည်ခြင်းသည်ဤပြ problem နာကိုရှောင်ရှားရန်သာမက,