လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ကြီးမားသော array_column အတွက် array_column အသုံးပြုမှုအတွက်စွမ်းဆောင်ရည် optimization အကြံပြုချက်များ

ကြီးမားသော array_column အတွက် array_column အသုံးပြုမှုအတွက်စွမ်းဆောင်ရည် optimization အကြံပြုချက်များ

M66 2025-05-11

PHP Development တွင် array_column သည် Multidimensional Array မှတစ်ခုတည်းသောကော်လံဒေတာများကိုထုတ်ယူပြီးခင်းကျင်းအသစ်တစ်ခုကိုပြန်ပို့ပေးသောအလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဒီ function ဟာ subarrays မျိုးစုံပါတဲ့ကြီးမားတဲ့ခင်းကျင်းမှုတစ်ခုကနေဒေတာကော်လံတစ်ခုကနေဒေတာကော်လံတစ်ခုကနေဒေတာတွေကိုရယူဖို့အထူးသဖြင့်သင့်တော်သည်။ သို့သော်ဒေတာ volume အလွန်ကြီးမားသည့်အခါ array_column ၏စွမ်းဆောင်ရည်သည်အတားအဆီးတစ်ခုဖြစ်လာပြီးအစီအစဉ်ကိုနှေးကွေးစေနိုင်သည်။

ဤဆောင်းပါးသည်များစွာသော array_column ၏စွမ်းဆောင်ရည်ကိုမြှင့်တင်ရန်အတွက် array_column ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်နည်းလမ်းအချို့ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ 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
)

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် ဒေတာ ကော်လံ အမည်ရှိ ဒေတာခင်းကျင်းမှုမှဒေတာများကိုထုတ်ယူသည်။

2 ။ ကြီးမားတဲ့ arrays နှင့်အတူကိုင်တွယ်သောအခါစွမ်းဆောင်ရည်ပြ issues နာများ

အသေးစား DataSets များအတွက် array_column စွမ်းဆောင်ရည်ယေဘုယျအားဖြင့်လက်ခံနိုင်ဖွယ်ဖြစ်ပါတယ်။ သို့သော်သန်းပေါင်းများစွာသောမှတ်တမ်းများနှင့်ထိုထက်မကရေးဆွဲသည့်အခါလုပ်ဆောင်ချက်တစ်ခု၏ကွပ်မျက်မှုအချိန်သည်ကြာရှည်နိုင်သည်။ အကြောင်းပြချက်မှာ array_colum သည် ကြီးမားသောအချိန်ကုန်လွန်သူများအတွက်အလွန်အချိန်ကုန်သောလုပ်ငန်းစဉ်ဖြစ်သောအတန်းတစ်ခုစီကို ဖြတ်. ရှာဖွေရန်နှင့်ထုတ်ယူလိမ့်မည်ဖြစ်သည်။

3 ။ optimization ဖြေရှင်းချက် 1 - array_column သို့ ခေါ်ဆိုမှုများစွာကိုရှောင်ကြဉ်ပါ

အကယ်. သင်သည်ကြီးမားသောခင်းကျင်းမှုတစ်ခုမှကော်လံမျိုးစုံကိုထုတ်ယူရန်လိုအပ်ပါက 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 သို့ခေါ်ဆိုမှုများစွာကိုရှောင်ရှားခြင်းဖြင့်ပြုလုပ်သည်။

4 ။ အကောင်းမြင်ဖြေရှင်းနည်း 2 - မှတ်ဥာဏ်ကိုသိမ်းရန်မီးစက်ကိုသုံးပါ

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;
}

ဤချဉ်းကပ်နည်းသည်ခင်းကျင်းမှုတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်ခြင်းဖြင့်မှတ်ဥာဏ်သုံးစွဲမှုကိုလျော့နည်းစေသည်။

5 ။ အကောင်းမြင်ဖြေရှင်းချက် 3: အသုတ်အပြောင်းအလဲနဲ့နှင့် segmenting ထုတ်ယူခြင်း

ကြီးမားတဲ့ 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);

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

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

ကြီးမားသော array များနှင့်ဆက်ဆံရာတွင် array_column function သည်အထူးသဖြင့်ဒေတာ volume အလွန်ကြီးမားသည့်အခါတွင်စွမ်းဆောင်ရည်ပြောင်ပြောင်တင်းတင်းဖန်တီးနိုင်သည်။ ၎င်း၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်အောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။

  1. calls_column ကို array_column ကို array_column ကိုလျှော့ချပြီးကော်လံမျိုးစုံကိုဖြည့်ဆည်းပေးပြီးစွမ်းဆောင်ရည်ကိုပိုကောင်းအောင်လုပ်ပါ။

  2. Memory စားသုံးမှုကိုလျှော့ချရန်တစ်ဆင့်သော array ကိုအဆင့်ဆင့်လုပ်ဆောင်ရန် Generator ကိုသုံးပါ။

  3. အဆောက်အအုံငယ်များဖြင့်ကြီးမားသောအစုအဝေးများကိုထုတ်လုပ်ခြင်း, မှတ်ဉာဏ်နှင့်အချိန်ကန့်သတ်ချက်များကိုရှောင်ကြဉ်ပါ။

ဤ optimization မဟာဗျူဟာများဖြင့် Array ကြီးများနှင့်ဆက်ဆံရာတွင် Array_column function ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။