array_combeine သည် parameters များအနေဖြင့်အဓိကခင်းကျင်းခြင်းနှင့်ဒုတိယခင်းကျင်းမှုနှင့်ဒုတိယ array သည်တန်ဖိုးအဖြစ်သတ်မှတ်ထားသည်။ အကယ်. Array နှစ်ခုသည်မတူညီသောအရှည်များရှိပါက သတိပေးခြင်း နှင့် မှားယွင်းစွာ ပြန်ပို့သည်။
$keys = ['name', 'email', 'age'];
$values = ['Alice', '[email protected]', 30];
$result = array_combine($keys, $values);
// ထုတ်လုပ်ခြင်း:['name' => 'Alice', 'email' => '[email protected]', 'age' => 30]
print_r($result);
ရိုးရာ foreach အရေးအသားနည်းလမ်းနှင့်နှိုင်းယှဉ်လျှင်ဤနည်းလမ်းသည် ပို. ကျစ်လစ်သိပ်သည်း။ ကုဒ်သည် ပို. ဖတ်နိုင်သည်။
ActsoTive Array များတည်ဆောက်ရန် fonteach ကို အသုံးပြုခြင်းသည်သာမန်နည်းလမ်းတစ်ခုလည်းဖြစ်သည်, ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$keys = ['name', 'email', 'age'];
$values = ['Alice', '[email protected]', 30];
$result = [];
foreach ($keys as $index => $key) {
$result[$key] = $values[$index];
}
ဤချဉ်းကပ်မှု၏အားသာချက်မှာ၎င်း၏ပြောင်းလွယ်ပြင်လွယ်မှုဖြစ်လွယ်လွယ်ပြင်လွယ်မှုဖြစ်ပါသည်။
စွမ်းဆောင်ရည်ရှုထောင့်မှကြည့်လျှင် array_combine သည် C ဘာသာစကားတွင်အကောင်အထည်ဖော်သည့်အတွင်းပိုင်း function တစ်ခုဖြစ်ပြီးအချက်အလက်အနည်းငယ်ကိုကိုင်တွယ်သောအခါကွာဟမှုနီးပါးရှိသည်။ ဒါပေမယ့်ကြီးမားတဲ့ array ကြီးများနှင့်ဆက်ဆံရာတွင် (ထိုကဲ့သို့သောထောင်ပေါင်းများစွာသောအဓိကတန်ဖိုးအတွဲများကဲ့သို့သော) နှင့်ဆက်ဆံသောအခါ၎င်းသည် manual foreach ထက်အနည်းငယ်ပိုကောင်းသည်။
သို့သော်စွမ်းဆောင်ရည်တိုးတက်မှုသည်ပြင်းအားနည်းပါးလာမှုအမိန့်မဟုတ်ပါ။ ဤတွင် Benchmark ၏ရိုးရှင်းသောဥပမာတစ်ခု (ရည်ညွှန်းသည်):
$keys = range(1, 100000);
$values = range(100001, 200000);
// အသုံးပြု array_combine
$start = microtime(true);
array_combine($keys, $values);
echo 'array_combine: ' . (microtime(true) - $start) . "s\n";
// အသုံးပြု foreach
$start = microtime(true);
$result = [];
foreach ($keys as $i => $key) {
$result[$key] = $values[$i];
}
echo 'foreach: ' . (microtime(true) - $start) . "s\n";
များသောအားဖြင့် array_combine သည် အနည်းငယ်ပိုကောင်းလိမ့်မည်, သို့သော်နှစ်ခုအကြားခြားနားချက်မှာ 5-10% ထက်မပိုပါ။
အကယ်. array နှစ်ခုသည်တူညီသောအရှည်ရှိကြောင်းသေချာလျှင်ဒေတာဖွဲ့စည်းပုံသည်တည်ငြိမ်သည်, array_comboine ကိုအသုံးပြုပြီး array_comboine ကို သုံး. code ကိုပိုမိုတိုတောင်းသည်သာမကအမှားအယွင်းများနည်းပါးသည်။
$userFields = ['id', 'name', 'email'];
$userData = [101, 'John Doe', '[email protected]'];
$user = array_combine($userFields, $userData);
ဒေတာရှေ့နောက်မညီမှုများဖြစ်နိုင်ခြေရှိလျှင်ဒေတာဘေ့စ်မှပြန်လာသောခင်းကျင်းမှုနှင့်အသုံးပြုသူမှအခြားထည့်သွင်းမှုတစ်ခုပြုလုပ်နိုင်သည်ဆိုပါက foreach နှင့်စိစစ်အတည်ပြုယုတ္တိဗေဒကိုအသုံးပြုရန်အကြံပြုသည်။
$result = [];
$minLength = min(count($keys), count($values));
for ($i = 0; $i < $minLength; $i++) {
$result[$keys[$i]] = $values[$i];
}
သို့မဟုတ်နောက်ဆက်တွဲပြ troubl နာဖြေရှင်းမှုအတွက်သစ်ထုတ်လုပ်ခြင်း
if (count($keys) !== count($values)) {
error_log("ကိုက်ညီမှုမရှိသေးသော array အရှည်: keys(" . count($keys) . "), values(" . count($values) . ")");
}
အချို့ဖြစ်ရပ်များတွင်သင်ကွင်းဆက်ပြုပြင်ထုတ်လုပ်မှုကိုတိုးတက်စေရန်အတွက် array_map နှင့် array_combine ကို တစ်ချိန်တည်းတွင်သုံးနိုင်သည်။
$raw = ['John', '[email protected]', 28];
$keys = ['name', 'email', 'age'];
$user = array_combine($keys, array_map('trim', $raw));
ဤနည်းလမ်းသည်ယုတ္တိဗေဒကိုအသုံးချခြင်းနှင့်အသိုက်အချက်အလက်များဖြစ်သည်။