PHP Development တွင် array operations များသည်နေ့စဉ်အလုပ်တွင်အသုံးအများဆုံး link ဖြစ်သည်။ ကျွန်ုပ်တို့သည်နေ့တိုင်းနီးပါး "သန့်ရှင်းရေးခင်းကျင်း" ကိုလုပ်နေကြသည်။ အသုံးပြုသူများမှတင်သွင်းသောအချက်အလက်များကိုအသုံးပြုသူများကတင်သွင်းသောအချက်အလက်များသို့မဟုတ် interfaces များဖြင့်ပြန်လာသောအချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ခြင်းဖြစ်စေ,
ကံကောင်းထောက်မစွာပင် PHP သည်အလွန်လှပသည့်နည်းလမ်းကိုထောက်ပံ့ပေးသည် - array_filter () ။ ဤဆောင်းပါးသည်သင့်အားဤလုပ်ဆောင်မှု၏အသုံးပြုမှုကိုနက်နက်နဲနဲနားလည်မှုသို့ယူဆောင်လာပါလိမ့်မည်။
PHP array_filter () ၏ပုံမှန်အပြုအမူသည် element များကို array တွင် "မှားယွင်းသော" ဟူသောတန်ဖိုးကိုဖယ်ရှားရန်ဖြစ်သည်။
string ''
နံပါတ် 0 နှင့် string '0' '
တရားစွာလဲှ
မှားသော
အချည်းနှီးသောခင်းကျင်း []
အရိုးရှင်းဆုံးဥပမာကိုကြည့်ရအောင်။
$data = ['apple', '', null, 'banana', 0, '0', false];
$filtered = array_filter($data);
print_r($filtered);
output ရလဒ် -
Array
(
[0] => apple
[3] => banana
)
အကယ်. သင် array_filter () သည် ပုံမှန်အားဖြင့် "အကြောင်းအရာမရှိ" သောတန်ဖိုးများအားလုံးကိုဖယ်ရှားပေးလိမ့်မည်။ အခြေအနေအများစုအတွက်ဤအသုံးပြုမှုသည်လုံလောက်ပါသည်။
အကယ်. သင်သည် '0' 0 မ ဆန်သော 0 ကို 0 င်ရန်မလိုလားပါက callback function ကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။ Array_filter () သည် သင်အမှန်တကယ်ထင်မြင်ယူဆချက်များသာ filter များကသာလျှင် " ဗလာ " ကဲ့သို့သော "ဗလာ " ဖြစ်သည်။
$data = ['title' => '', 'price' => 0, 'available' => false, 'sku' => '0', 'description' => null];
$filtered = array_filter($data, function($value) {
return !is_null($value) && $value !== '';
});
print_r($filtered);
ထုတ်လုပ်မှု -
Array
(
[price] => 0
[available] =>
[sku] => 0
)
ဤနည်းလမ်းသည်အသုံးပြုသူပုံစံဒေတာသို့မဟုတ် configuration ပစ္စည်းများပြုပြင်ရန်အတွက်အထူးသဖြင့်သင့်လျော်သည်။ အဓိပ္ပါယ်ရှိသော "သုညတန်ဖိုးများ" ကိုမတော်တဆဖျက်ပစ်မည်မဟုတ်ပါ။
အသုံးပြုသူမှ API သို့ထည့်သွင်းရန်ထည့်သွင်းမှုအားဖြင့်ထည့်သွင်းထားသောအချက်အလက်များကိုသင်ပို့လိုပါကကျွန်ုပ်တို့သည် NULL တန်ဖိုးကိုမကျော်ဖြတ်လိုပါ။
$formData = [
'name' => 'Zhang San',
'email' => '',
'phone' => null,
'age' => 25
];
$cleanData = array_filter($formData, function($val) {
return !is_null($val) && $val !== '';
});
$apiUrl = 'https://api.m66.net/user/submit';
$options = [
'http' => [
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($cleanData),
]
];
$context = stream_context_create($options);
$result = file_get_contents($apiUrl, false, $context);
echo $result;
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် api ကိုအသုံးမကျသောအကွက်များမ 0 င်သောအခွင့်အလမ်းမရရန်ရှောင်ကြဉ်ရန်ခိုင်လုံသောအချက်အလက်များကိုသာပေးပို့နိုင်သည်။
အကယ်. သင်၏ခင်းကျင်းမှုသည် Multidimensional MultidimenSAls MultidimenSAlal ဖြစ်လျှင်ရှေ့ဆုံးသောအသိုက်ပုံစံဖြစ်သော,
function recursive_filter(array $input) {
foreach ($input as $key => &$value) {
if (is_array($value)) {
$value = recursive_filter($value);
}
}
return array_filter($input, function($val) {
return $val !== '' && !is_null($val);
});
}
$data = [
'user' => [
'name' => 'li si',
'email' => '',
'tags' => ['', null, 'developer']
],
'status' => null
];
$cleaned = recursive_filter($data);
print_r($cleaned);
ဤနည်းအားဖြင့်သင်၏ခင်းကျင်းပြီးနောက်သင်၏ခင်းကျင်းမှုသည်သန့်ရှင်းလိမ့်မည်။
အထက်ပါကိစ္စရပ်မှတစ်ဆင့်ကျွန်ုပ်တို့မြင်နိုင်သည် -
array_filter () ၏ပုံမှန်အပြုအမူသည်အလွန်အစွမ်းထက်ပြီးဖြစ်သည်, "မှားယွင်းသောတန်ဖိုးများ" အမျိုးမျိုးကိုဖယ်ရှားခြင်း။
Custom Callbacks နှင့်အတူ, သင်စစ်ထုတ်ဝြေငျ့ကိုအတိအကျထိန်းချုပ်နိုင်ပါတယ်။
ရှုပ်ထွေးသောအဆောက်အအုံများနှင့်ဆက်ဆံရာတွင်၎င်းကိုရရှိသောနည်းလမ်းများဖြင့်အလွယ်တကူကိုင်တွယ်နိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်၎င်းကိုပုံစံအချက်အလက်များ, interface commition parameters များနှင့်ဒေတာဘေ့စ်ရေးသားခြင်းမပြုမီဒေတာစီစစ်ခြင်းကိုပင်အသုံးပြုနိုင်သည်။
အတိုချုပ်ပြောရရင်ဒီ function ကိုပိုပြီးကျွမ်းကျင်လေလေ, သင်၏ဒေတာသည်သင်၏ဒေတာဖြစ်လိမ့်မည်။