"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني إنشاء جميع المجموعات والتباديل الممكنة للعناصر ضمن مصفوفة أحادية البعد في PHP؟

كيف يمكنني إنشاء جميع المجموعات والتباديل الممكنة للعناصر ضمن مصفوفة أحادية البعد في PHP؟

تم النشر بتاريخ 2024-11-15
تصفح:997

How can I generate all possible combinations and permutations of elements within a one-dimensional array in PHP?

PHP: كيفية الحصول على جميع المجموعات الممكنة لمصفوفة أحادية البعد

في هذه المقالة، سوف نتعمق في طريقة لاسترداد جميع المجموعات الممكنة من العناصر داخل مصفوفة أحادية البعد في PHP. وعلى النقيض من الحلول الأخرى، يضمن هذا النهج أخذ كل من المجموعات والتباديل في الاعتبار.

بيان المشكلة

بالنظر إلى مجموعة من السلاسل أو الأرقام، فإن الهدف هو إنشاء جميع المجموعات الممكنة من العناصر، مع الأخذ في الاعتبار الترتيبات المختلفة. على سبيل المثال، "Alpha Beta" و"Beta Alpha" عبارة عن مجموعات متميزة يجب تضمينها في المخرجات.

حل PHP

يستخدم حل PHP المقدم خوارزمية بحث متكررة ذات عمق أولي:

تقسيم الحل

  • يتم استدعاء وظيفة Deep_picker مع المصفوفة الأولية، وسلسلة فارغة، ومرجع مصفوفة فارغة.
  • إنها تتكرر بشكل متكرر من خلال المصفوفة، مع إضافة كل عنصر إلى نهاية سلسلة النتيجة الحالية.
  • عندما تحتوي السلسلة المؤقتة على عناصر، تتم إضافتها إلى النتيجة array.
  • إذا كان لا يزال هناك عناصر متبقية في مصفوفة الإدخال، فستستدعي الوظيفة نفسها بالمصفوفة المحدثة والسلسلة المؤقتة.
  • إذا لم يكن هناك المزيد من العناصر المتبقية، فستستدعي السلسلة المؤقتة التي تحتوي على تتم إضافة مجموعة كاملة إلى مجموعة المجموعة.

الإخراج

ينتج الكود المقدم الإخراج التالي، الذي يحتوي على جميع مجموعات وتباديل العناصر في المعطى المصفوفة:

Array
(
    [0] =>  Alpha
    [1] =>  Alpha Beta
    [2] =>  Alpha Beta Gamma
    [3] =>  Alpha Beta Gamma Sigma
    [4] =>  Alpha Beta Sigma
    [5] =>  Alpha Beta Sigma Gamma
    [6] =>  Alpha Gamma
    [7] =>  Alpha Gamma Beta
    [8] =>  Alpha Gamma Beta Sigma
    [9] =>  Alpha Gamma Sigma
    [10] =>  Alpha Gamma Sigma Beta
    [11] =>  Alpha Sigma
    [12] =>  Alpha Sigma Beta
    [13] =>  Alpha Sigma Beta Gamma
    [14] =>  Alpha Sigma Gamma
    [15] =>  Alpha Sigma Gamma Beta
    [16] =>  Beta
    [17] =>  Beta Alpha
    [18] =>  Beta Alpha Gamma
    [19] =>  Beta Alpha Gamma Sigma
    [20] =>  Beta Alpha Sigma
    [21] =>  Beta Alpha Sigma Gamma
    [22] =>  Beta Gamma
    [23] =>  Beta Gamma Alpha
    [24] =>  Beta Gamma Alpha Sigma
    [25] =>  Beta Gamma Sigma
    [26] =>  Beta Gamma Sigma Alpha
    [27] =>  Beta Sigma
    [28] =>  Beta Sigma Alpha
    [29] =>  Beta Sigma Alpha Gamma
    [30] =>  Beta Sigma Gamma
    [31] =>  Beta Sigma Gamma Alpha
    [32] =>  Gamma
    [33] =>  Gamma Alpha
    [34] =>  Gamma Alpha Beta
    [35] =>  Gamma Alpha Beta Sigma
    [36] =>  Gamma Alpha Sigma
    [37] =>  Gamma Alpha Sigma Beta
    [38] =>  Gamma Beta
    [39] =>  Gamma Beta Alpha
    [40] =>  Gamma Beta Alpha Sigma
    [41] =>  Gamma Beta Sigma
    [42] =>  Gamma Beta Sigma Alpha
    [43] =>  Gamma Sigma
    [44] =>  Gamma Sigma Alpha
    [45] =>  Gamma Sigma Alpha Beta
    [46] =>  Gamma Sigma Beta
    [47] =>  Gamma Sigma Beta Alpha
    [48] =>  Sigma
    [49] =>  Sigma Alpha
    [50] =>  Sigma Alpha Beta
    [51] =>  Sigma Alpha Beta Gamma
    [52] =>  Sigma Alpha Gamma
    [53] =>  Sigma Alpha Gamma Beta
    [54] =>  Sigma Beta
    [55] =>  Sigma Beta Alpha
    [56] =>  Sigma Beta Alpha Gamma
    [57] =>  Sigma Beta Gamma
    [58] =>  Sigma Beta Gamma Alpha
    [59] =>  Sigma Gamma
    [60] =>  Sigma Gamma Alpha
    [61] =>  Sigma Gamma Alpha Beta
    [62] =>  Sigma Gamma Beta
    [63] =>  Sigma Gamma Beta Alpha
)
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3