Как изменить ключи многомерного массива в PHP?

Мой многомерный массив с именем $cs_map_data как следует:

Array
(
    [2] => Array
        (
            [class_id] => 2
            [class_name] => II
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 81
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [3] => Array
        (
            [class_id] => 3
            [class_name] => III
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 155
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 156
                            [subject_name] => 11 Maths
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 157
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [3] => Array
                        (
                            [cs_map_id] => 158
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [4] => Array
        (
            [class_id] => 4
            [class_name] => IV
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 86
                            [subject_name] => Physics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [6] => Array
        (
            [class_id] => 6
            [class_name] => VI
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 144
                            [subject_name] => Mathematics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 145
                            [subject_name] => Biology
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [7] => Array
        (
            [class_id] => 7
            [class_name] => VII
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 129
                            [subject_name] => Physics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 130
                            [subject_name] => Chemistry11
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 131
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [8] => Array
        (
            [class_id] => 8
            [class_name] => VIII
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 67
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 68
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [9] => Array
        (
            [class_id] => 9
            [class_name] => IX
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 87
                            [subject_name] => Mathematics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 88
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 89
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

)

Если вы заметили, ключи массива [2],[3],[4],[6],[7],[8],[9], Эти ключи я получил от какой-то функции, определенной другим разработчиком. Теперь мое требование состоит в том, чтобы переименовать эти ключи, т.е. ключи массива должны быть [0],[1],[2],[3],[4],[5],[6], Другие элементы массива и другие пары ключ-значение должны быть такими, как есть. Я погуглил об этом, но не смог найти решение. Может кто-нибудь помочь мне переупорядочить эти ключи массива? Заранее спасибо. Мой требуемый вывод выглядит следующим образом:

Array
    (
        [0] => Array
            (
                [class_id] => 2
                [class_name] => II
                [class_checked] => 0
                [class_subjects] => Array
                    (
                        [0] => Array
                            (
                                [cs_map_id] => 81
                                [subject_name] => 11 Engllish
                                [subject_checked] => 0
                                [teacher_cs_id] => 
                            )

                )

        )

    [1] => Array
        (
            [class_id] => 3
            [class_name] => III
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 155
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 156
                            [subject_name] => 11 Maths
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 157
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [3] => Array
                        (
                            [cs_map_id] => 158
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [2] => Array
        (
            [class_id] => 4
            [class_name] => IV
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 86
                            [subject_name] => Physics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [3] => Array
        (
            [class_id] => 6
            [class_name] => VI
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 144
                            [subject_name] => Mathematics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 145
                            [subject_name] => Biology
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [4] => Array
        (
            [class_id] => 7
            [class_name] => VII
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 129
                            [subject_name] => Physics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 130
                            [subject_name] => Chemistry11
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 131
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [5] => Array
        (
            [class_id] => 8
            [class_name] => VIII
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 67
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 68
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [6] => Array
        (
            [class_id] => 9
            [class_name] => IX
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 87
                            [subject_name] => Mathematics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 88
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 89
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

)

3 ответа

print_r(array_values($array));

Это просто вопрос array_values, как предложил Дэйв.

В вашем случае это выглядит так, как будто вам необходимо переиндексировать самый внешний массив и элементы 'class_subjects' на один уровень ниже.

Для внешнего уровня это легко. Скажем, все это хранится в переменной $a, затем

$a = array_values($a);

и самый внешний массив переиндексируется!

Внутренние массивы немного сложнее, я бы предложил попробовать foreach и использовать ссылку для компонента value.

Снова предположим, что самый внешний массив хранится в $a и это уже было переиндексировано, сейчас

$a = array_values($a);
foreach($a as $i => &$sub)
  $sub['class_subjects'] = array_values($sub['class_subjects']);

и вы все сделали.

Поскольку здесь вы хотите переиндексировать индексы внешнего массива, array_values ​​($arr) будет отлично с ним работать. Вы можете попробовать с примером.

<?php
$arr = array(
    'foo' => 'foo',
    'bar' => array(
        'baz' => 'baz',
        'candy' => 'candy',
        'vegetable' => array(
            'carrot' => 'carrot',
        )
    ),
    'vegetable' => array(
        'carrot' => 'carrot2',
    ),
    'fruits' => 'fruits',
);
// Pass your array as argument
$arr1 = array_values($arr);
print_r($arr1);
?>

И если вы хотите рекурсивно выполнять итерации для внутренних массивов, вы можете ссылаться на примеры, приведенные в array_values. Надеюсь, это решит вашу проблему.

Другие вопросы по тегам