လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Associative Array ၏သတ်မှတ်ထားသောသော့ချက်တန်ဖိုးကို extract လုပ်ရန် array_column ကိုသုံးပါ

Associative Array ၏သတ်မှတ်ထားသောသော့ချက်တန်ဖိုးကို extract လုပ်ရန် array_column ကိုသုံးပါ

M66 2025-04-28

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

Array_column function ၏အခြေခံအသုံးပြုမှု

Array_column function သည် parameters သုံးနာရီကိုလက်ခံသည်။

 array_column(array $input, mixed $column_key, mixed $index_key = null): array
  • $ input : များသောအားဖြင့် multidimensimensal array, များသောအားဖြင့် associative ခင်းကျင်း။

  • $ column_key : ထုတ်ယူရန်ကော်လံအမည်သို့မဟုတ်ကော်လံသော့ (array ၏အညွှန်းကိန်းဖြစ်နိုင်သည်) ။

  • $ index_key : ရလဒ်ခင်းကျင်းအတွက်သော့ကိုသတ်မှတ်ရန် optional parameter သည်။ မသတ်မှတ်ပါကကိန်းဂဏန်းများကိုပုံမှန်အားဖြင့်အသုံးပြုသည်။

ဥပမာ 1 - ခင်းကျင်းခြင်းမှတိကျတဲ့သော့ချက်၏တန်ဖိုးကိုထုတ်ယူပါ

ကျွန်ုပ်တို့တွင် multi-diffensional array တစ်ခုရှိသည်ဆိုပါစို့ element တစ်ခုစီသည် ID , အမည် နှင့် အီးမေးလ်များ အပါအ 0 င်အသုံးပြုသူတစ် ဦး စီ၏သက်ဆိုင်ရာသတင်းအချက်အလက်များကိုကိုယ်စားပြုသည်

 <?php
$users = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];

$emails = array_column($users, 'email');
print_r($emails);
?>

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

 Array
(
    [0] => alice@example.com
    [1] => bob@example.com
    [2] => charlie@example.com
)

ဤဥပမာတွင်အသုံးပြုသူတစ် ဦး ချင်းစီအတွက် အီးမေးလ် နယ်ပယ်ကိုထုတ်ယူသည်။

ဥပမာ 2 - Index ကို index to index_key parameter ကိုသုံးပါ

တစ်ခါတစ်ရံတွင်ကျွန်ုပ်တို့သည်ကော်လံတစ်ခုကိုထုတ်ယူသောအခါသော့ချက်တန်ဖိုးကိုအညွှန်းကိန်းအဖြစ်အသုံးပြုလိုသည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်သုံးစွဲသူ၏ ID ကို array ၏သော့ချက်၏သော့ကိုအသုံးပြုလိုပါကသတ်မှတ်ထားသည့်ကိန်းဂဏန်းအညွှန်းကိန်းအစားတတိယ parameter $ index_key ကို သုံးနိုင်သည်။

 <?php
$users = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];

$emails = array_column($users, 'email', 'id');
print_r($emails);
?>

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

 Array
(
    [1] => alice@example.com
    [2] => bob@example.com
    [3] => charlie@example.com
)

ဤအချိန်တွင်ပြန်လာသောခင်းကျင်းမှုသည်ဂဏန်းအညွှန်းကိန်းမဟုတ်ဘဲ သော့ကို ယူသည်။

ဥပမာ 3. URL ကို multidimensional array မှထုတ်ယူခြင်းနှင့်ပြုပြင်ခြင်း

API interface တစ်ခုမှ URLs ပါ 0 င်သောအချက်အလက်များစွာပါ 0 င်သည်ဆိုပါစို့ ဤလိုအပ်ချက်ကိုရရှိရန် array_column နှင့် array_map ကို သုံးနိုင်သည်။

 <?php
$products = [
    ['id' => 1, 'name' => 'Product A', 'url' => 'https://example.com/product-a'],
    ['id' => 2, 'name' => 'Product B', 'url' => 'https://example.com/product-b'],
    ['id' => 3, 'name' => 'Product C', 'url' => 'https://example.com/product-c']
];

// အားလုံးကိုထုတ်ယူပါ URL
$urls = array_column($products, 'url');

// ပြန်လည်နေရာချ URL ဒိုမိန်းအမည်
$updatedUrls = array_map(function($url) {
    return preg_replace('/https:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);

print_r($updatedUrls);
?>

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

 Array
(
    [0] => https://m66.net/product-a
    [1] => https://m66.net/product-b
    [2] => https://m66.net/product-c
)

Array_map နှင့် Preg_replace function မှတဆင့် URL domain name အားလုံးကို m66.net ဖြင့်အစားထိုးသည်။

အကျဉ်းချုပ်

  • Array_column function သည် multidimensional array မှသတ်သတ်မှတ်မှတ်ကော်လံ၏တန်ဖိုးများကိုထုတ်ယူနိုင်သည်။

  • $ index_key parameter ကို သုံး. Return Array ၏အဓိကတန်ဖိုးကိုသင်သတ်မှတ်နိုင်သည်။

  • array_map and preg_replace ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်း, ဒေတာအတွင်းရှိ URL များကိုအလွယ်တကူပြုလုပ်ရန်နှင့်ပြုပြင်ရန်ဖြစ်နိုင်သည်။

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

စာသားနှင့်ယခင်အပိုင်းအကြားလိုင်းများခွဲဝေ: