အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PHP သည် arrays များကိုလုပ်ဆောင်ရန်အဆင်ပြေစေရန်အဆင်ပြေအောင်လုပ်ဆောင်မှုများစွာပေးပြီး array_column function သည်၎င်းတို့ထဲမှတစ်ခုဖြစ်သည်။ array_colnolumn သည် နှစ်ရှုထောင်ခင်းကျင်းသည့်ကော်လံတစ်ခုတွင်ကော်လံတစ်ခုကိုထုတ်ယူနိုင်ပြီးထိုကော်လံ၏တန်ဖိုးများပါ 0 င်သည့်ခင်းကျင်းမှုအသစ်တစ်ခုကိုပြန်ပို့နိုင်သည်။ array_column function သည် elast ခွဲကြက်ရန်စုံစမ်းမှုအကွက်ကိုတည်ဆောက်ရာတွင်အလွန်အသုံးဝင်သည်။
elast ခလုတ်ကိုတည်ဆောက်ရန် array_colum ကို အသုံးပြုနည်း, အထူးသဖြင့် elastinsarchy query မှတိကျသောအကွက်များကို extract လုပ်နည်း။
Array_column သည် PHP တွင် built-in function တစ်ခုဖြစ်ပြီးတစ်ရှုထောင်ခင်းကျင်းမှုတစ်ခုမှသတ်မှတ်ထားသောကော်လံတစ်ခု၏တန်ဖိုးများအားလုံးကိုဖြည်ချပြီးဤတန်ဖိုးများကိုတစ်ရှုထောင်ခင်းကျင်းမှုအသစ်တစ်ခုအဖြစ်ပြန်ပို့သည်။ ဤလုပ်ဆောင်ချက်၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_column(array $array, $column_key, $index_key = null): array
$ array : input multi-dimensional array ။
$ column_key : ထုတ်ယူခံရဖို့လိုအပ်တဲ့ကော်လံရဲ့သော့ချက်။
$ index_key : ရလဒ်ကိုအညွှန်းကိန်းအတွက်အသုံးပြုသောကော်လံကိုသတ်မှတ်သည့်ကော်လံကိုသတ်မှတ်သည့်ရွေးချယ်စရာ parameter သည် (မပေးခဲ့ပါကရလဒ်ခင်းကျင်းသည်ကိန်းဂဏန်းအညွှန်းကိန်းကိုအလိုအလျောက်အသုံးပြုနိုင်လိမ့်မည်) ။
စာရွက်စာတမ်းအချက်အလက်များပါ 0 င်သောနှစ်ဖက်မြင်ကွင်းခင်းကျင်းမှုတစ်ခုရှိသည်ဆိုပါစို့။ စာရွက်စာတမ်းတစ်ခုစီတွင် ID , အမည် , အမျိုးအစားများ စသည်တို့ပါ 0 င ်သည်။
မူရင်းဒေတာအောက်ပါအတိုင်းဖြစ်သည်ဟုယူဆပါ -
$documents = [
['id' => 1, 'name' => 'Apple', 'category' => 'Fruit', 'url' => 'http://example.com/apple'],
['id' => 2, 'name' => 'Carrot', 'category' => 'Vegetable', 'url' => 'http://example.com/carrot'],
['id' => 3, 'name' => 'Banana', 'category' => 'Fruit', 'url' => 'http://example.com/banana'],
['id' => 4, 'name' => 'Spinach', 'category' => 'Vegetable', 'url' => 'http://example.com/spinach']
];
၎င်းမှ ကဏ် fields တစ်ခုလုံးကိုထုတ်ယူရန် array_column function ကို သုံး. elast ချွတ်ကြက်ရှာဖွေရန်လွယ်ကူစွာအသုံးပြုရန်အတွက်ခင်းကျင်းရန်ခင်းကျင်းမှုကိုတည်ဆောက်နိုင်သည်။
$categories = array_column($documents, 'category');
print_r($categories);
ရလဒ်ရလဒ် -
Array
(
[0] => Fruit
[1] => Vegetable
[2] => Fruit
[3] => Vegetable
)
သင် အမျိုးအစား ကွက်ပေါ်တွင် အခြေခံ . elast ခလုတ်ကိုမှတ်တမ်းတင်ရန်သင်လိုအပ်သည်ဆိုပါစို့။ သင်ဤသို့လုပ်နိုင်သည် -
$searchTerm = 'Fruit';
$query = [
'query' => [
'terms' => [
'category' => array_column(
array_filter($documents, function($doc) use ($searchTerm) {
return $doc['category'] === $searchTerm;
}),
'id'
)
]
]
];
// RESSEACY REANTS အကြောင်းအရာ
print_r($query);
စာရွက်စာတမ်းကိုကျွန်ုပ်တို့ရှာဖွေလိုပါကဤစာရွက်စာတမ်းကို အမျိုးအစား အသီးများ ဖြင့်ရှာဖွေလိုသည်ဆိုပါစို့။ array_filter သည် ပစ္စည်း အမျိုးအစား နှင့်စာရွက်စာတမ်းများအားလုံးကိုပထမဆုံးအကြိမ်ထုတ်ယူမည်ဖြစ်ပြီး ID နယ်ပယ်မှထုတ်ယူရန် array_colnum ကို သုံးပါ။
output query array သည်ဤပုံစံနှင့်တူသည်။
Array
(
[query] => Array
(
[terms] => Array
(
[category] => Array
(
[0] => 1
[1] => 3
)
)
)
)
<?php
$documents = [
['id' => 1, 'name' => 'Apple', 'category' => 'Fruit', 'url' => 'http://example.com/apple'],
['id' => 2, 'name' => 'Carrot', 'category' => 'Vegetable', 'url' => 'http://example.com/carrot'],
['id' => 3, 'name' => 'Banana', 'category' => 'Fruit', 'url' => 'http://example.com/banana'],
['id' => 4, 'name' => 'Spinach', 'category' => 'Vegetable', 'url' => 'http://example.com/spinach']
];
// အသုံးပြု array_column အားလုံးကိုထုတ်ယူပါ category လယ်ကွင်း
$categories = array_column($documents, 'category');
print_r($categories);
// တည်ဆောက် Elasticsearch 查询လယ်ကွင်း数组
$searchTerm = 'Fruit';
$query = [
'query' => [
'terms' => [
'category' => array_column(
array_filter($documents, function($doc) use ($searchTerm) {
return $doc['category'] === $searchTerm;
}),
'id'
)
]
]
];
// RESSEACY REANTS အကြောင်းအရာ
print_r($query);
?>
အထူးသဖြင့်ကျွန်ုပ်တို့လိုအပ်သောနယ်ပယ်များကိုထိရောက်စွာဖြည့်ဆည်းပေးနိုင်သည့် elast ခွဲစိတ်ဆိုင်ရာရှာဖွေမှုများကိုတည်ဆောက်ရာတွင်အထူးသဖြင့် elasticsange query များကိုတည်ဆောက်ရာတွင်အချက်အလက်များကိုဖြည့်ဆည်းပေးရန်အလွန်သင့်လျော်သည် ။
သင်၏ဒေတာအရင်းအမြစ်တွင်စာရွက်စာတမ်းအမြောက်အများပါ 0 င်ပါက array_column function ကိုအသုံးပြုခြင်းသည် code ၏ရိုးရှင်းမှုနှင့်ဖတ်နိုင်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
အခြားခင်းကျင်းခြင်းလုပ်ငန်းများကိုပေါင်းစပ်ခြင်းဖြင့် ( array_filter ) နှင့် array_column) နှင့် array_column ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောစုံစမ်းမှုလိုအပ်ချက်များကိုဖြည့်ဆည်းရန် ElastInsearch အတွက်ရှုပ်ထွေးသောစုံစမ်းမှုအကဲဖြတ်ရန်ပြင်ဆင်မှုများပြုလုပ်နိုင်သည်။
ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ အကယ်. သင့်တွင်မေးခွန်းများရှိပါက PHP ခင်းကျင်းဆင်ရေးကျွမ်းကျင်မှုများအကြောင်းပိုမိုသိလိုပါက ကျေးဇူးပြု. မေးခွန်းများမေးပါ။