လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် array_flip function ကိုအသုံးပြုသောအခါ key-value ပ conflicts ိပက်ခများကိုမည်သို့ရှောင်ရှားရမည်နည်း။ 】

PHP တွင် array_flip function ကိုအသုံးပြုသောအခါ key-value ပ conflicts ိပက်ခများကိုမည်သို့ရှောင်ရှားရမည်နည်း။ 】

gitbox 2025-09-12

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> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </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>] =&gt; a
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; b
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; c
)
</span></span>

သို့သော် array_flip function ကိုအသုံးပြုသောအခါ, သင်သည်သော့ချက်တန်ဖိုးရှိပ conflicts ိပက်ခများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ PHP ရှိ Array ခလုတ်များသည်ထူးခြားသည်။ မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများထပ်တူထပ်တူထပ်တူထပ်မျှရှိပါကပြောင်းလဲခြင်းအပြီးတွင်အဓိကတန်ဖိုးပ conflict ိပက်ခဖြစ်လိမ့်မည်။ ပုံမှန်အားဖြင့် array_flip သည် ထပ်တူတန်ဖိုးများကိုထပ်ခါတလဲလဲဖြင့် overwries များ,

အဓိကတန်ဖိုးပ conflict ိပက်ခ၏ဥပမာ

အောက်ပါဥပမာကိုသုံးသပ်ကြည့်ပါ -

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </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>] =&gt; a
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; c
)
</span></span>

ဤဥပမာတွင်မူရင်းခင်းကျင်းမှု ( 'B' => 2 နှင့် 'c' => 2> 2 ) တွင် element နှစ်ခု ရှိသည်။ Array_flip ကို ခေါ်ဆိုပြီးနောက်တန်ဖိုး 2 ကို C ကိုအားဖြင့်ရေးထားပြီး 'B' => 2 ကို ဆုံးရှုံးခြင်းကိုရရှိခဲ့သည်။

သော့ချက်တန်ဖိုးရှိပ conflicts ိပက်ခများကိုမည်သို့ရှောင်ရှားရမည်နည်း။

ဒီပြ problem နာကိုဖြေရှင်းဖို့အချက်အလက်မပျောက်အောင်သေချာစေရန်ခင်းကျင်းမှုကိုမပြောင်းလဲမီကျွန်ုပ်တို့အပြောင်းအလဲပြုလုပ်နိုင်သည်။ ဤတွင်အချို့သောအသုံးများသောနည်းလမ်းများမှာ -

1 ။ ခင်းကျင်းမှု၏တန်ဖိုးကိုသော့အသစ်တစ်ခုအဖြစ် အသုံးပြု. နောက်ထပ်သတင်းအချက်အလက်များကိုပူးတွဲပါ

ဘုံအလေ့အကျင့်တစ်ခုမှာပ conflict ိပက်ခရှိသောအဓိကတန်ဖိုးများကိုတစ်ခုချင်းစီတစ်ခုချင်းစီသည်ထူးခွားလာသည်။ ဥပမာအားဖြင့်, မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများသည်အတူတူပင်ဖြစ်ပါကကျွန်ုပ်တို့သည်မူလနှောင်ကြိုးကိုသော့အသစ်တစ်ခုအဖြစ်ပေါင်းစပ်နိုင်သည်။

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </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> =&gt; </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>] =&gt; a
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; Array
        (
            [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; b
            [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; c
        )
)
</span></span>

ဤဥပမာတွင်ထပ်ဆင့်တန်ဖိုးများဖြင့်သော့ချက်ကျသောပ conflicts ိပက်ခများဖြင့်ကျွန်ုပ်တို့ကိုင်တွယ်သော်လည်းထပ်တူတန်ဖိုးတစ်ခုချင်းစီကိုမပျောက်စေနိုင်ပါ။

2 ။ array_count_values ​​ကို တန်ဖိုးများကိုတွက်ချက်ရန်အသုံးပြုသည်

အကယ်. ကျွန်ုပ်တို့သည်ထပ်တူသော့များကိုပေါင်းစည်းလိုပါကမူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးတစ်ခုစီမည်မျှတွေ့နိုင်သည်ကိုသိလိုလျှင် 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> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </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> =&gt; </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>] &gt; </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>] =&gt; a
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; c_2
)
</span></span>

ဤနည်းလမ်းသည်သော့ချက်ပ conflicts ိပက်ခများ (မူရင်းသော့ကဲ့သို့) မပျောက်ပါ။

3 ။ JSON encoding ကို key အဖြစ်သုံးပါ

နောက်နည်းတစ်နည်းမှာပုံတူတန်ဖိုးများကိုတန်ဖိုးတစ်ခုစီသည်ထူးခွားလာသည်မှာ JSONS string သို့ပြောင်းရန်ဖြစ်သည်။

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </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> =&gt; </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>] =&gt; a
    [</span><span><span class="hljs-string">"2"</span></span><span>] =&gt; c
)
</span></span>

မူရင်းတန်ဖိုးကိုထပ်ခါတလဲလဲနှင့်ထူးခြားသောဒေတာတည်ဆောက်ပုံသို့ပြောင်းလဲရန်လိုအပ်သည့်အခါဤချဉ်းကပ်မှုသည်သင့်လျော်သည်။

အကျဉ်းချုပ်

သော့ချက်တန်ဖိုးရှိပ conflicts ိပက်ခများကိုရှောင်ရှားခြင်းသည် array_flip function ကိုအသုံးပြုသောအခါဘုံစိန်ခေါ်မှုတစ်ခုဖြစ်သည်။ အကယ်. သင်၏ Array တန်ဖိုးများကိုထပ်ခါတလဲလဲပြုလုပ်နိုင်ပါကအချက်အလက်မပျောက်ပါစေရန်နည်းလမ်းအချို့ရှိပါသည်။ ဘုံနည်းလမ်းများတွင်ထပ်တူသော့များကိုထည့်သွင်းခြင်း, တန်ဖိုးများကိုရေတွက်ခြင်းဖြင့်ပြောင်းလဲခြင်း, မှန်ကန်သောမဟာဗျူဟာကိုရွေးချယ်ခြင်းသည်သင်၏လိုအပ်ချက်နှင့်ဒေတာအပြောင်းအလဲအတွက်ဇာတ်လမ်းပေါ်မူတည်သည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    array_flip