လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ရှိ Array element များအနက်တိကျမှန်ကန်သောနှိုင်းယှဉ်မှုရရှိရန် Array_udiff_assoc နှင့် Array_map ကိုမည်သို့ပေါင်းစပ်ရမည်နည်း။

PHP ရှိ Array element များအနက်တိကျမှန်ကန်သောနှိုင်းယှဉ်မှုရရှိရန် Array_udiff_assoc နှင့် Array_map ကိုမည်သို့ပေါင်းစပ်ရမည်နည်း။

gitbox 2025-09-28
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,မဆိုဆံ့နိုင်ပါတယ် PHP မှတ်ချက်များသို့မဟုတ်ရိုးရှင်းသော variable ကိုအဓိပ္ပာယ်ဖွင့်ဆိုချက်</span></span><span>
</span><span><span class="hljs-variable">$dummy</span></span><span> = </span><span><span class="hljs-string">"၎င်းသည်လွတ်လပ်သောကုဒ်နံပါတ်ဖြစ်သည်"</span></span><span>;
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">placeholderFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"placeholder function output ကို"</span></span><span>;
}

</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * PHP ပေါင်းစပ်ဖို့ဘယ်လို array_udiff_assoc နှင့် array_map array element များ၏တိကျသောနှိုင်းယှဉ်အောင်မြင်ရန်?
 *
 * တည်နေ PHP အလယ်ပိုင်း,ကျနော်တို့နှစ်ခု array ၏ element တွေကိုနှိုင်းယှဉ်ဖို့လိုအပ်တဲ့အခါ,နှင့်နှိုင်းယှဉ်မှုဖြစ်စဉ်ကိုအကောင့်သို့ထည့်သွင်းစဉ်းစားနိုင်မျှော်လင့်ပါတယ်、ဘယ်အချိန်မှာတန်ဖိုးနှင့်စိတ်ကြိုက်နှိုင်းယှဉ်စျေးနှုန်း,
 * array_udiff_assoc နှင့် array_map ဤရွေ့ကားနှစ်ခုအလွန်အသုံးဝင်သောကိရိယာများဖြစ်ကြသည်。ဤဆောင်းပါးသည် array element များ၏တိကျသောနှိုင်းယှဉ်မှုရရှိရန်သူတို့ကိုမည်သို့ပေါင်းစပ်ရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။。
 *
 * 1. array_udiff_assoc နိဒါန်း
 * array_udiff_assoc() နှစ်ခု array အကြားကွဲပြားခြားနားမှုနှိုင်းယှဉ်ဖို့အသုံးပြုခဲ့သည်,同时考虑键名နှင့်键值。၎င်း၏ function ရှေ့ပြေးပုံစံအောက်ပါအတိုင်းဖြစ်ပါတယ်:
 *
 * array_udiff_assoc(array $array1, array $array2, callable $value_compare_func): array
 *
 * ဒီမှာ $value_compare_func ဒါဟာ callback function ကိုဖြစ်ပါတယ်,စိတ်ကြိုက်တန်ဖိုးများအတွက်ယုတ္တိဗေဒနှိုင်းယှဉ်。
 *
 * 2. array_map နိဒါန်း
 * array_map() 可以对数组အလယ်ပိုင်း的每个ဓါတ်应用回调函数,အသစ်တစ်ခုကို array ထုတ်လုပ်ပါ。ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည်:
 *
 * array_map(callable $callback, array ...$arrays): array
 *
 * သွား array_map,我们可以တည်နေ比较前对数组ဓါတ်进行标准化处理(ဥပမာ, နေရာများကိုဖယ်ရှားပါ、ပေါင်းစည်းအမှုစသည်ဖြင့်)。
 *
 * 3. စိတ်ကူးများပေါင်းစပ်
 * - အသုံးပြု array_map နှစ်ခု arrays ၏စည်းလုံးမှုအပြောင်းအလဲနဲ့,ဒြပ်စင်တသမတ်တည်းလုပ်ပါ。
 * - 然后အသုံးပြု array_udiff_assoc နှစ်ခု array နှိုင်းယှဉ်,ပိုမိုတိကျသောကွာဟချက်ရပ်ဆိုင်ရာတရားစီရင်ချက်များအောင်မြင်ရန်စိတ်ကြိုက်ခေါ်ဆိုမှုများကိုအသုံးပြုပါ。
 *
 * နမူနာကုဒ်:
 */</span>

</span><span><span class="hljs-comment">// မူရင်းခင်းကျင်း</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [
    </span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-string">' Apple '</span></span><span>,
    </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-string">'Banana'</span></span><span>,
    </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </span><span><span class="hljs-string">'Cherry'</span></span><span>
];

</span><span><span class="hljs-variable">$array2</span></span><span> = [
    </span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-string">'apple'</span></span><span>,
    </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-string">'banana '</span></span><span>,
    </span><span><span class="hljs-string">'d'</span></span><span> =&gt; </span><span><span class="hljs-string">'Date'</span></span><span>
];

</span><span><span class="hljs-comment">// Array element တွေကို unified အပြောင်းအလဲနဲ့(ရှေ့နှင့်နောက်ကျောနေရာများဖယ်ရှားခြင်းနှင့်အသေးကိုဖွင့်ပါ)</span></span><span>
</span><span><span class="hljs-variable">$normalizedArray1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>));
}, </span><span><span class="hljs-variable">$array1</span></span><span>);

</span><span><span class="hljs-variable">$normalizedArray2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>));
}, </span><span><span class="hljs-variable">$array2</span></span><span>);

</span><span><span class="hljs-comment">// စိတ်ကြိုက်နှိုင်းယှဉ်လုပ်ဆောင်ချက်များ</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">compareValues</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$value1</span></span></span><span>, </span><span><span class="hljs-variable">$value2</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-variable">$value1</span></span><span>, </span><span><span class="hljs-variable">$value2</span></span><span>);
}

</span><span><span class="hljs-comment">// အသုံးပြု array_udiff_assoc ရယူ $array1 အလယ်ပိုင်း与 $array2 ကွဲပြားခြားနားသောဒြပ်စင်</span></span><span>
</span><span><span class="hljs-variable">$difference</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_udiff_assoc</span></span><span>(</span><span><span class="hljs-variable">$normalizedArray1</span></span><span>, </span><span><span class="hljs-variable">$normalizedArray2</span></span><span>, </span><span><span class="hljs-string">'compareValues'</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"နှစ်ခု array ၏တိကျသောနှိုင်းယှဉ်ပြီးနောက်ခြားနားချက်:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$difference</span></span><span>);

<span class="hljs-comment">/**
 * ရလဒ်ရလဒ်:
 * Array
 * (
 *     [c] =&gt; cherry
 * )
 *
 * ရှင်းလင်းဖေါ်ပြ:
 * - ဓါတ် 'c' =&gt; 'Cherry' တည်နေ $array2 အလယ်ပိုင်း不存တည်နေ,ထို့ကြောင့်၎င်းကိုခြားနားချက်အဖြစ်ဖော်ထုတ်သည်。
 * - ဓါတ် 'a' နှင့် 'b' ဖြတ်သန်းသွားပါ trim နှင့် strtolower စံသတ်မှတ်ချက်အပြီး,တူညီတဲ့စဉ်းစားလိမ့်မည်,因此不တည်နေ结果အလယ်ပိုင်း。
 *
 * အကျဉ်းချုပ်:
 * သွား结合 array_map နှင့် array_udiff_assoc,可以တည်နေ比较数组时做到既考虑键名,အဖြစ်ကောင်းစွာတန်ဖိုးကိုစဉ်းစားပါ,并且可以သွား回调函数自定义比较规则,
 * ရှုပ်ထွေးသောဒေတာကွဲပြားခြားနားသောခွဲခြမ်းစိတ်ဖြာလိုအပ်ချက်များကိုသင့်လျော်သော。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>
  • သက်ဆိုင်သောတက်(ဂ်)များ:

    array_map