PHP Development တွင် array_column သည် Multidimensional Array မှတစ်ခုတည်းသောကော်လံဒေတာများကိုထုတ်ယူပြီးခင်းကျင်းအသစ်တစ်ခုကိုပြန်ပို့ပေးသောအလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဒီ function ဟာ subarrays မျိုးစုံပါတဲ့ကြီးမားတဲ့ခင်းကျင်းမှုတစ်ခုကနေဒေတာကော်လံတစ်ခုကနေဒေတာကော်လံတစ်ခုကနေဒေတာတွေကိုရယူဖို့အထူးသဖြင့်သင့်တော်သည်။ သို့သော်ဒေတာ volume အလွန်ကြီးမားသည့်အခါ array_column ၏စွမ်းဆောင်ရည်သည်အတားအဆီးတစ်ခုဖြစ်လာပြီးအစီအစဉ်ကိုနှေးကွေးစေနိုင်သည်။
ဤဆောင်းပါးသည်များစွာသော array_column ၏စွမ်းဆောင်ရည်ကိုမြှင့်တင်ရန်အတွက် array_column ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်နည်းလမ်းအချို့ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာ array_colum ၏အခြေခံအသုံးပြုမှုကိုအတိုချုပ်ပြန်လည်သုံးသပ်ကြပါစို့။ ကျွန်ုပ်တို့တွင်နှစ်ဖက်ရှုထောင့်ခင်းကျင်းမှုတစ်ခုရှိပြီးကော်လံတစ်ခု၏အချက်အလက်များကိုထုတ်ယူလိုပါက၎င်းကို array_column မှတဆင့်အကောင်အထည်ဖော်နိုင်သည်။
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
$names = array_column($data, 'name');
print_r($names);
ထုတ်လုပ်မှု -
Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
)
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် ဒေတာ ကော်လံ အမည်ရှိ ဒေတာခင်းကျင်းမှုမှဒေတာများကိုထုတ်ယူသည်။
အသေးစား DataSets များအတွက် array_column စွမ်းဆောင်ရည်ယေဘုယျအားဖြင့်လက်ခံနိုင်ဖွယ်ဖြစ်ပါတယ်။ သို့သော်သန်းပေါင်းများစွာသောမှတ်တမ်းများနှင့်ထိုထက်မကရေးဆွဲသည့်အခါလုပ်ဆောင်ချက်တစ်ခု၏ကွပ်မျက်မှုအချိန်သည်ကြာရှည်နိုင်သည်။ အကြောင်းပြချက်မှာ array_colum သည် ကြီးမားသောအချိန်ကုန်လွန်သူများအတွက်အလွန်အချိန်ကုန်သောလုပ်ငန်းစဉ်ဖြစ်သောအတန်းတစ်ခုစီကို ဖြတ်. ရှာဖွေရန်နှင့်ထုတ်ယူလိမ့်မည်ဖြစ်သည်။
အကယ်. သင်သည်ကြီးမားသောခင်းကျင်းမှုတစ်ခုမှကော်လံမျိုးစုံကိုထုတ်ယူရန်လိုအပ်ပါက array_column သို့ခေါ်ဆိုမှုအရေအတွက်ကိုလျှော့ချရန်စဉ်းစားပါ။ ဥပမာအားဖြင့်တစ်ကြိမ်တွင်ကော်လံတစ်ခုနှင့်အခြားကော်လံတစ်ခုထပ်မံထုတ်ယူခြင်းကိုရှောင်ပါ။ အဲဒီအစား, သင်တစ်ချိန်တည်းတွင်သင်လိုချင်သောကော်လံမျိုးစုံကိုထုတ်ယူရန် array_map ကို သုံးနိုင်သည်။
// မျိုးစုံကော်လံထုတ်ယူ
$data = [
['id' => 1, 'name' => 'Alice', 'age' => 30],
['id' => 2, 'name' => 'Bob', 'age' => 25],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// လိုအပ်သည့်ကော်လံအားလုံးကိုတစ်ပြိုင်တည်းထုတ်ယူပါ
$columns = array_map(function($item) {
return [$item['name'], $item['age']];
}, $data);
print_r($columns);
ဤနည်းလမ်းသည်တစ်ချိန်တည်းတွင်ဖြတ်သန်းခြင်းဖြင့်ကော်လံမျိုးစုံရရှိပြီး array_column သို့ခေါ်ဆိုမှုများစွာကိုရှောင်ရှားခြင်းဖြင့်ပြုလုပ်သည်။
Memory Management သည်ကြီးမားသောခင်းကျင်းမှုများစွာကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါအာရုံစူးစိုက်မှုကိုလိုအပ်သည့်ရှုထောင့်တစ်ခုဖြစ်သည်။ Memory စားသုံးမှုကိုလျှော့ချရန်, array တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်မည့်အစား array များကို process လုပ်ရန်မီးစက်ကိုသုံးနိုင်သည်။
ဒေတာအားလုံးကိုမှတ်ဉာဏ်ထဲထည့်မယ့်အစား, မီးစက်က array တစ်ခုချင်းစီကို array တစ်ခုစီကိုအဆင့်ဆင့်ပြန်ပို့ပေးနိုင်တယ်။
// ဒေတာခြေလှမ်းကိုတစ်နည်းအားဖြင့်ပြန်ပို့ရန်မီးစက်ကိုသုံးပါ
function getNames($data) {
foreach ($data as $item) {
yield $item['name'];
}
}
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
// နာမည်ရဖို့မီးစက်ကိုသုံးပါ
foreach (getNames($data) as $name) {
echo $name . PHP_EOL;
}
ဤချဉ်းကပ်နည်းသည်ခင်းကျင်းမှုတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်ခြင်းဖြင့်မှတ်ဥာဏ်သုံးစွဲမှုကိုလျော့နည်းစေသည်။
ကြီးမားတဲ့ array တွေနဲ့ဆက်ဆံတဲ့အခါမှာအပြောင်းအလဲနဲ့အတွက်ခင်းကျင်းမှုကိုသေးငယ်သောအစုငယ်အမျိုးမျိုးကိုခွဲထုတ်နိုင်ပါတယ်။ PHP ၏မှတ်ဉာဏ်ကန့်သတ်ချက်များနှင့်ကွပ်မျက်ချိန်ကန့်သတ်ချက်သည်သင်၏အစီအစဉ်၏စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ထို့ကြောင့်ဒေတာများကိုအသုတ်ခြင်းသည်ကောင်းသောရွေးချယ်မှုဖြစ်သည်။
ဥပမာအားဖြင့်, သင်သည်အချို့သောအရွယ်အစားကိုအရွယ်အစားတစ်ခုဖြင့် ဖြတ်. သေးငယ်သောအဖုံးတစ်ခုစီကို array_column ကို အသုံးပြု. ရလဒ်များကိုပေါင်းစည်းနိုင်သည်။
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
// နောက်ထပ်အချက်အလက်များ
];
$batchSize = 1000;
$columns = [];
foreach (array_chunk($data, $batchSize) as $chunk) {
$columns = array_merge($columns, array_column($chunk, 'name'));
}
print_r($columns);
ဤနည်းလမ်းသည်ခင်းကျင်းရေးဆွဲခြင်းမှတစ်ဆင့်ခင်းကျင်းမှုတစ်ခုလုံးကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ခြင်းကိုရှောင်ရှားသည်။
ကြီးမားသော array များနှင့်ဆက်ဆံရာတွင် array_column function သည်အထူးသဖြင့်ဒေတာ volume အလွန်ကြီးမားသည့်အခါတွင်စွမ်းဆောင်ရည်ပြောင်ပြောင်တင်းတင်းဖန်တီးနိုင်သည်။ ၎င်း၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်အောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။
calls_column ကို array_column ကို array_column ကိုလျှော့ချပြီးကော်လံမျိုးစုံကိုဖြည့်ဆည်းပေးပြီးစွမ်းဆောင်ရည်ကိုပိုကောင်းအောင်လုပ်ပါ။
Memory စားသုံးမှုကိုလျှော့ချရန်တစ်ဆင့်သော array ကိုအဆင့်ဆင့်လုပ်ဆောင်ရန် Generator ကိုသုံးပါ။
အဆောက်အအုံငယ်များဖြင့်ကြီးမားသောအစုအဝေးများကိုထုတ်လုပ်ခြင်း, မှတ်ဉာဏ်နှင့်အချိန်ကန့်သတ်ချက်များကိုရှောင်ကြဉ်ပါ။
ဤ optimization မဟာဗျူဟာများဖြင့် Array ကြီးများနှင့်ဆက်ဆံရာတွင် Array_column function ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။