اذهب إلى المحتوى
  • 0

كيفية دمج أمران Array Built-In Functions في php

بلال قدور

السؤال

لو عندي مثلاُ المصفوفة التالية:

 $friends = [
    "Ahmed Gamal" => "AG",
    "Osama Mohamed" => "OM",
    "Mahmoud Gamal" => "MG",
    "Ahmed Samy" => "AS"
  ];

وأردت مثلاً أن أدمج أمران Array Built-In Functions: 

array_reverse($friends);
array_flip($friends);

كيف ينفذ هذا علماُ أنّ هذه الطريقة لم تنفع:

  echo '<pre>';
  print_r(array_reverse($friends));
  print_r(array_flip($friends));
  echo '</pre>';

ولا هذه:

  array_reverse($friends);
  array_flip($friends);
  echo '<pre>';
  print_r($friends);
  echo '</pre>';

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

استخدم دالة array_combine()، وهي تستقبل مصفوفة من المفاتيح ومصفوفة من القيم وتعيد مصفوفة جديدة يكون كل عنصر فيها هو زوج مفتاح-قيمة من عنصر المصفوفة الأولى مع عنصر المصفوفة الثانية المقابل له.

أي في حال لدينا المصفوفة التالية:

$friends = [
    "Ahmed Gamal" => "AG",
    "Osama Mohamed" => "OM",
    "Mahmoud Gamal" => "MG",
    "Ahmed Samy" => "AS"
];

ونريد دمج أوامر array_reverse() وarray_flip()، نكتب الكود كالتالي:

$reversed_and_flipped_friends = array_combine(array_reverse($friends), array_flip($friends));

وستقوم تلك الدالة بإنشاء مصفوفة جديدة كالتالي:

[
    "OM" => "Osama Mohamed",
    "AG" => "Ahmed Gamal",
    "MG" => "Mahmoud Gamal",
    "AS" => "Ahmed Samy"
]

وبإمكانك طباعة المصفوفة الجديدة بالشكل التالي:

echo '<pre>';
print_r($reversed_and_flipped_friends);
echo '</pre>';

والنتيجة هي:

Array
(
    [OM] => Osama Mohamed
    [AG] => Ahmed Gamal
    [MG] => Mahmoud Gamal
    [AS] => Ahmed Samy
)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكن دمج أمري "array_reverse" و "array_flip" بسهولة في PHP باستخدام الدالة "array_reverse" على المصفوفة، ثم استخدام الدالة "array_flip" على النتيجة.

لذلك، يمكنك استخدام الكود التالي:

$friends = [
    "Ahmed Gamal" => "AG",
    "Osama Mohamed" => "OM",
    "Mahmoud Gamal" => "MG",
    "Ahmed Samy" => "AS"
];

// دمج الدالتين
$result = array_flip(array_reverse($friends, true));

// طباعة النتيجة
print_r($result);

في هذا الكود، تم انشاء المصفوفة "$friends" وتم استخدام الدالة "array_reverse" لعكس المصفوفة، ثم تم استخدام الدالة "array_flip" لتبديل المفاتيح بالقيم. وتم تخزين النتيجة في متغير "$result" وطباعة النتيجة باستخدام الدالة "print_r".

يتم تمرير المعامل "true" إلى الدالة "array_reverse" للحفاظ على المفاتيح الأصلية للمصفوفة، وإذا تم ترك هذا المعامل فإن الدالة ستعكس القيم والمفاتيح معًا.

النتيجة المطبوعة ستكون كالتالي:

Array
(
    [AS] => Ahmed Samy
    [MG] => Mahmoud Gamal
    [OM] => Osama Mohamed
    [AG] => Ahmed Gamal
)

وهي المصفوفة التي تم تعديلها بعد تنفيذ الدالتين.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

السبب الذي يجعل الطريقتين التي ذكرتهما لا تعمل هو أنّ دوال "array_reverse" و "array_flip" لا تقوم بتعديل المصفوفة نفسها بل تعيدان مصفوفة جديدة. لذلك، إذا كنت ترغب في دمج عمل هاتين الدالتين لتعديل المصفوفة الأصلية، يمكنك القيام بذلك عن طريق القيام بالعمليات مباشرة على المصفوفة دون حفظ النتائج في متغيرات جديدة.

هناك طريقتين تمكنك من القيام بذلك:

  1. الطريقة الأولى:
    $friends = [
        "Ahmed Gamal" => "AG",
        "Osama Mohamed" => "OM",
        "Mahmoud Gamal" => "MG",
        "Ahmed Samy" => "AS"
    ];
    
    // عكس ترتيب العناصر في المصفوفة
    $friends = array_reverse($friends, true);
    
    // استبدال المفاتيح بالقيم والقيم بالمفاتيح
    $friends = array_flip($friends);
    
    // عرض المصفوفة بعد التغيير
    echo '<pre>';
    print_r($friends);
    echo '</pre>';
  2. الطريقة الثانية:
     

    $friends = [
        "Ahmed Gamal" => "AG",
        "Osama Mohamed" => "OM",
        "Mahmoud Gamal" => "MG",
        "Ahmed Samy" => "AS"
    ];
    
    // عكس ترتيب العناصر في المصفوفة واستبدال المفاتيح بالقيم والقيم بالمفاتيح
    $friends = array_flip(array_reverse($friends, true));
    
    // عرض المصفوفة بعد التغيير
    echo '<pre>';
    print_r($friends);
    echo '</pre>';

    بهذه الطريقتين، سترى المصفوفة النهائية بعد تطبيق الدالتين وتغيير القيم والمفاتيح وسوف تحصل علي النتيجة المطلوبة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الدالة array_reverse() تقوم بعكس ترتيب العناصر في المصفوفة وترجع مصفوفة جديدة بالترتيب العكسي، أما الدالة array_flip() فتقوم بتبديل المفاتيح مع القيم في المصفوفة. إذا كنت ترغب في الدمج بين هاتين الدالتين لتعديل المصفوفة الأصلية، يمكنك استخدامهما كما يلي:

$friends = [
    "Ahmed Gamal" => "AG",
    "Osama Mohamed" => "OM",
    "Mahmoud Gamal" => "MG",
    "Ahmed Samy" => "AS"
];

$reversed_and_flipped = array_flip(array_reverse($friends, true));

print_r($reversed_and_flipped);

في هذا الكود، تم استخدام array_reverse() مع المعامل الاختياري true لأننا نريد الحفاظ على المفاتيح الأصلية. ثم تم استخدام array_flip() لتبديل المفاتيح مع القيم في المصفوفة التي تم عكسها. النتيجة ستكون مصفوفة جديدة بنفس العناصر لكن مع تغيير مفاتيحها.

إذا قمت بتنفيذ الكود أعلاه، سيتم طباعة المصفوفة الجديدة $reversed_and_flipped بعد أن تم عكس العناصر وتبديل المفاتيح والقيم فيها. العناصر ستكون بنفس القيم ولكن بترتيب معكوس، وستجد المفاتيح السابقة أصبحت القيم والقيم السابقة أصبحت المفاتيح في المصفوفة الناتجة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...