PHP တွင် array_flip function ကိုအသုံးပြုသောအခါ key-value ပ conflicts ိပက်ခများကိုမည်သို့ရှောင်ရှားရမည်နည်း။ 】
PHP တွင် Array_Flip function သည်အလွန်အသုံး 0 င်သောကိရိယာတစ်ခုဖြစ်သည်။ ရိုးရိုးလေးပြောရလျှင် array_flip သည် တန်ဖိုးအသစ်နှင့်တန်ဖိုးအသစ်ကိုသော့အသစ်အဖြစ်သိုလှောင်ထားပြီးခင်းကျင်းမှုအသစ်တစ်ခုကိုပြန်ပို့ပါ။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$flipped</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$flipped</span></span><span>);
</span></span>output ကိုဖြစ်လိမ့်မည်:
<span><span>Array
(
[</span><span><span class="hljs-meta">1</span></span><span>] => a
[</span><span><span class="hljs-meta">2</span></span><span>] => b
[</span><span><span class="hljs-meta">3</span></span><span>] => c
)
</span></span>သို့သော် array_flip function ကိုအသုံးပြုသောအခါ, သင်သည်သော့ချက်တန်ဖိုးရှိပ conflicts ိပက်ခများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ PHP ရှိ Array ခလုတ်များသည်ထူးခြားသည်။ မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများထပ်တူထပ်တူထပ်တူထပ်မျှရှိပါကပြောင်းလဲခြင်းအပြီးတွင်အဓိကတန်ဖိုးပ conflict ိပက်ခဖြစ်လိမ့်မည်။ ပုံမှန်အားဖြင့် array_flip သည် ထပ်တူတန်ဖိုးများကိုထပ်ခါတလဲလဲဖြင့် overwries များ,
အောက်ပါဥပမာကိုသုံးသပ်ကြည့်ပါ -
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$flipped</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$flipped</span></span><span>);
</span></span>output ရလဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span>Array
(
[</span><span><span class="hljs-meta">1</span></span><span>] => a
[</span><span><span class="hljs-meta">2</span></span><span>] => c
)
</span></span>ဤဥပမာတွင်မူရင်းခင်းကျင်းမှု ( 'B' => 2 နှင့် 'c' => 2> 2 ) တွင် element နှစ်ခု ရှိသည်။ Array_flip ကို ခေါ်ဆိုပြီးနောက်တန်ဖိုး 2 ကို C ကိုအားဖြင့်ရေးထားပြီး 'B' => 2 ကို ဆုံးရှုံးခြင်းကိုရရှိခဲ့သည်။
ဒီပြ problem နာကိုဖြေရှင်းဖို့အချက်အလက်မပျောက်အောင်သေချာစေရန်ခင်းကျင်းမှုကိုမပြောင်းလဲမီကျွန်ုပ်တို့အပြောင်းအလဲပြုလုပ်နိုင်သည်။ ဤတွင်အချို့သောအသုံးများသောနည်းလမ်းများမှာ -
ဘုံအလေ့အကျင့်တစ်ခုမှာပ conflict ိပက်ခရှိသောအဓိကတန်ဖိုးများကိုတစ်ခုချင်းစီတစ်ခုချင်းစီသည်ထူးခွားလာသည်။ ဥပမာအားဖြင့်, မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများသည်အတူတူပင်ဖြစ်ပါကကျွန်ုပ်တို့သည်မူလနှောင်ကြိုးကိုသော့အသစ်တစ်ခုအဖြစ်ပေါင်းစပ်နိုင်သည်။
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$newArray</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$arr</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>])) {
</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>] = </span><span><span class="hljs-variable">$key</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// သော့ချက်တန်ဖိုးပ conflicts ိပက်ခများပါ,သော့အသစ်များနှင့်သော့အသစ်များကို array ထဲသို့ပေါင်းထည့်ပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>])) {
</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>][] = </span><span><span class="hljs-variable">$key</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>] = [</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>], </span><span><span class="hljs-variable">$key</span></span><span>];
}
}
}
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$newArray</span></span><span>);
</span></span>ထုတ်လုပ်မှု -
<span><span>Array
(
[</span><span><span class="hljs-meta">1</span></span><span>] => a
[</span><span><span class="hljs-meta">2</span></span><span>] => Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => b
[</span><span><span class="hljs-meta">1</span></span><span>] => c
)
)
</span></span>ဤဥပမာတွင်ထပ်ဆင့်တန်ဖိုးများဖြင့်သော့ချက်ကျသောပ conflicts ိပက်ခများဖြင့်ကျွန်ုပ်တို့ကိုင်တွယ်သော်လည်းထပ်တူတန်ဖိုးတစ်ခုချင်းစီကိုမပျောက်စေနိုင်ပါ။
အကယ်. ကျွန်ုပ်တို့သည်ထပ်တူသော့များကိုပေါင်းစည်းလိုပါကမူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးတစ်ခုစီမည်မျှတွေ့နိုင်သည်ကိုသိလိုလျှင် array_count_values function ကိုသုံးနိုင်သည်။ ဤနည်းလမ်းမှတစ်ဆင့်ပ conflicts ိပက်ခများကိုရှောင်ရှားရန် inverted key တန်ဖိုးများကိုကျွန်ုပ်တို့လုပ်ဆောင်နိုင်သည်။
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$flipped</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-variable">$countedValues</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_count_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$flipped</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$countedValues</span></span><span>[</span><span><span class="hljs-variable">$value</span></span><span>] > </span><span><span class="hljs-number">1</span></span><span>) {
</span><span><span class="hljs-variable">$flipped</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] = </span><span><span class="hljs-variable">$value</span></span><span> . </span><span><span class="hljs-string">'_'</span></span><span> . </span><span><span class="hljs-variable">$key</span></span><span>; </span><span><span class="hljs-comment">// Merge Key နှင့်မူရင်းသော့ချက်</span></span><span>
}
}
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$flipped</span></span><span>);
</span></span>ထုတ်လုပ်မှု -
<span><span>Array
(
[</span><span><span class="hljs-meta">1</span></span><span>] => a
[</span><span><span class="hljs-meta">2</span></span><span>] => c_2
)
</span></span>ဤနည်းလမ်းသည်သော့ချက်ပ conflicts ိပက်ခများ (မူရင်းသော့ကဲ့သို့) မပျောက်ပါ။
နောက်နည်းတစ်နည်းမှာပုံတူတန်ဖိုးများကိုတန်ဖိုးတစ်ခုစီသည်ထူးခွားလာသည်မှာ JSONS string သို့ပြောင်းရန်ဖြစ်သည်။
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$newArray</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$arr</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-variable">$newArray</span></span><span>[</span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>)] = </span><span><span class="hljs-variable">$key</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$newArray</span></span><span>);
</span></span>ထုတ်လုပ်မှု -
<span><span><span class="hljs-title class_">Array</span></span><span>
(
[</span><span><span class="hljs-string">"1"</span></span><span>] => a
[</span><span><span class="hljs-string">"2"</span></span><span>] => c
)
</span></span>မူရင်းတန်ဖိုးကိုထပ်ခါတလဲလဲနှင့်ထူးခြားသောဒေတာတည်ဆောက်ပုံသို့ပြောင်းလဲရန်လိုအပ်သည့်အခါဤချဉ်းကပ်မှုသည်သင့်လျော်သည်။
သော့ချက်တန်ဖိုးရှိပ conflicts ိပက်ခများကိုရှောင်ရှားခြင်းသည် array_flip function ကိုအသုံးပြုသောအခါဘုံစိန်ခေါ်မှုတစ်ခုဖြစ်သည်။ အကယ်. သင်၏ Array တန်ဖိုးများကိုထပ်ခါတလဲလဲပြုလုပ်နိုင်ပါကအချက်အလက်မပျောက်ပါစေရန်နည်းလမ်းအချို့ရှိပါသည်။ ဘုံနည်းလမ်းများတွင်ထပ်တူသော့များကိုထည့်သွင်းခြင်း, တန်ဖိုးများကိုရေတွက်ခြင်းဖြင့်ပြောင်းလဲခြင်း, မှန်ကန်သောမဟာဗျူဟာကိုရွေးချယ်ခြင်းသည်သင်၏လိုအပ်ချက်နှင့်ဒေတာအပြောင်းအလဲအတွက်ဇာတ်လမ်းပေါ်မူတည်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
array_flip