تحويل المصفوفة النقابية/الرقمية المختلطة متعددة الأبعاد

StackOverflow https://stackoverflow.com/questions/878692

سؤال

لدي مشكلة وأريد حلها عاجلا وليس آجلا.لو كان لدي الوقت لإعادة كتابة السيناريو بأكمله لفعلت ذلك، ولكن هذه هي حياة المبرمج، أليس كذلك؟على أي حال، لقد توليت مشروعًا ولدي مجموعة ترابطية/رقمية مختلطة متعددة الأبعاد مثل:

Array
(
    [item1] => Array
        (
            [dataset] => Array()
            [3] => Array()
            [7] => Array()
        )
    [item2] => Array
        (
            [dataset] => Array()
            [4] => Array()
            [19] => Array()
            [2] => Array()
        )
)

ما يجب أن أفعله هو تحويل dataset الفهرس في كل من itemX الفهارس هي الفهرس الأخير الذي يؤدي إلى هذا:

Array
(
    [item1] => Array
        (
            [3] => Array()
            [7] => Array()
            [dataset] => Array()
        )
    [item2] => Array
        (
            [4] => Array()
            [19] => Array()
            [2] => Array()
            [dataset] => Array()
        )
)

بعض الأشياء التي قد تساعد في تحقيق ذلك هي أنني يعرف أن dataset سيكون الفهرس دائمًا هو الفهرس الأول في ملف itemX سيكون الفهرس والمفتاح دائمًا عبارة عن "مجموعة بيانات" وسيكون الآخرون دائمًا عبارة عن فهارس رقمية.هل هناك أي طريقة للقيام بذلك في PHP؟حقيقة أنها مجموعة مختلطة يرميني.لا يمكنني إعادة ضبط الفهارس الرقمية والبدء من 0.لا يهم إذا تم تغيير ترتيبها، فقط أنها تأتي جميعًا قبل فهرس "مجموعة البيانات".ربما هو مجرد يوم من تلك الأيام....:\ أي اقتراحات أو تعليقات هي موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

قم بالتكرار على الرغم من جميع العناصر مثل هذا:

foreach ($all_items as $key =>$items) {
   $dataset = $items['dataset'];
   unset($all_items[$key]['dataset']); // Removing it (from the top)
   $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom)
}

سيؤدي إلغاء تعيين عنصر "مجموعة البيانات" وإضافته مرة أخرى إلى إضافة العنصر في الأسفل.

من المهم أن تقوم بتعديل المصفوفة الأصلية مباشرة، وليس العناصر $ من foreach، لأن هذه التغييرات لن تؤثر على المصفوفة الأصلية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top