Emad Saif نشر 19 أبريل 2022 أرسل تقرير نشر 19 أبريل 2022 لدي مصفوفتين بالشكل التالي: <?php $arr1 = array( "name" => "emad", "email" => "emad@gmail.com" ); $arr2 = [ 123=> 'emad_saif', 456=> '18' ]; المصفوفة الأولى لديها مفاتيح نصية string (مثل name و email)، بيمنا المصفوفة الثانية لديها مفاتيح رقمية integers (مثل 123 و 456) أحاول أن أقوم بدمج كلا المصفوفتين معًا، لذلك حاولت إستخدام الدالة array_merge: $result = array_merge($arr1, $arr2); print_r($result); لكن المشكلة تكون في مفاتيح المصفوفة الناتجة من العملية السابقة، حيث تكون المصفوفة بالشكل التالي: Array ( [name] => emad [email] => emad@gmail.com [0] => emad_saif [1] => 18 ) كما هو واضح من الكود السابق، فإن المصفوفتين تم دمجهما ولكن تم تغير مفاتيح المصفوفة الثانية وأصبحت 0 و 1 بدلًا من 123 و 456 كيف أقوم بدمج المصفوفتين معًا بدون تغير مفاتيح المصفوفة الثانية؟ بحيث تكون النتيجة النهائية بالشكل التالي: Array ( [name] => emad [email] => emad@gmail.com [123] => emad_saif [456] => 18 ) 1 اقتباس
1 سامح أشرف نشر 19 أبريل 2022 أرسل تقرير نشر 19 أبريل 2022 يمكنك أن تستخدم المعامل + لدمج المصفوفتين معًا، على النحو التالي: <?php $arr1 = array( "name" => "emad", "email" => "emad@gmail.com" ); $arr2 = [ 123=> 'emad_saif', 456=> '18' ]; print_r($arr1 + $arr2); وستحصل على النتيجة المطلوبة: Array ( [name] => emad [email] => emad@gmail.com [123] => emad_saif [456] => 18 ) أيضًا يمكنك أن تستخدم الدالة array_replace: $result = array_replace($arr1, $arr2); print_r($result); لكن عليك الحذر عند إستعمال أيًا من الطرق السابقة، ففي حالة كانت المصفوفتين يحتويان على نفس العنصر: <?php $arr1 = array( "name" => "first name", "email" => "emad@gmail.com" ); $arr2 = [ "name" => 'another name', 456=> '18' ]; $result = array_replace($arr1, $arr2); print_r($result); print_r($arr1 + $arr2); في الحالة السابقة، كلا المصفوفتين يحتويان على العنصر name، وعند إستعمال الدالة array_replace سوف يتم إستبدال العنصر name من المصفوفة arr1 بالعنصر name من المصفوفة arr2، وستكون النتيجة بالشكل التالي: Array ( [name] => another name [email] => emad@gmail.com [456] => 18 ) بينما عند إستعمال المعامل + فسوف يتم إستبدال العنصر name من المصفوفة arr2 بالعنصر name من المصفوفة arr1، وستكون النتيجة بالشكل التالي: Array ( [name] => first name [email] => emad@gmail.com [456] => 18 ) كما يمكنك جعل المعامل + يتصرف مثل الدالة array_replace من خلال تغير ترتيب المصفوفتين، بالشكل التالي: print_r($arr2 + $arr1); // يتم إستبدال المصفوفتين هنا بهذا الشكل سوف تحصل على نفس النتيجة مثل نتيجة إستعمال الدالة array_replace تمامًا. 1 اقتباس
السؤال
Emad Saif
لدي مصفوفتين بالشكل التالي:
المصفوفة الأولى لديها مفاتيح نصية string (مثل name و email)، بيمنا المصفوفة الثانية لديها مفاتيح رقمية integers (مثل 123 و 456)
أحاول أن أقوم بدمج كلا المصفوفتين معًا، لذلك حاولت إستخدام الدالة array_merge:
لكن المشكلة تكون في مفاتيح المصفوفة الناتجة من العملية السابقة، حيث تكون المصفوفة بالشكل التالي:
كما هو واضح من الكود السابق، فإن المصفوفتين تم دمجهما ولكن تم تغير مفاتيح المصفوفة الثانية وأصبحت 0 و 1 بدلًا من 123 و 456
كيف أقوم بدمج المصفوفتين معًا بدون تغير مفاتيح المصفوفة الثانية؟ بحيث تكون النتيجة النهائية بالشكل التالي:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.