Search code examples
phparraysmultidimensional-arrayassociative-array

How to insert a new key-value pair in an associative array in PHP?


I've an associative array named $classes_data as follows:

Array
(
    [2] => Array
        (
            [class_id] => 2
            [class_name] => II
            [subjects] => Array
                (
                    [0] => 11 Engllish
                )

        )

    [3] => Array
        (
            [class_id] => 3
            [class_name] => III
            [subjects] => Array
                (
                    [0] => Hidi
                    [1] => 11 Maths
                    [2] => 11 Science
                    [3] => 11 Engllish
                )

        )

    [4] => Array
        (
            [class_id] => 4
            [class_name] => IV
            [subjects] => Array
                (
                    [0] => Physics
                )

        )

    [6] => Array
        (
            [class_id] => 6
            [class_name] => VI
            [subjects] => Array
                (
                    [0] => Mathematics
                    [1] => dfadadadsagfasrsarasrarBiology
                )

        )

    [7] => Array
        (
            [class_id] => 7
            [class_name] => VII
            [subjects] => Array
                (
                    [0] => Physics
                    [1] => Chemistry11
                    [2] => 11 Science
                )

        )

    [8] => Array
        (
            [class_id] => 8
            [class_name] => VIII
            [subjects] => Array
                (
                    [0] => Hidi
                    [1] => 11 Engllish
                )

        )

    [9] => Array
        (
            [class_id] => 9
            [class_name] => IX
            [subjects] => Array
                (
                    [0] => Mathematics
                    [1] => Hidi
                    [2] => 11 Science
                )

        )

)

The keys of array (viz. 2,3,4,6,7,8,9) are in this manner instead of 0,1,2,3,4,5,6 because I've used one function to rearrange these keys.

Now what I want to do is insert a new key class_checked and set its initial value as 0 (i.e.class_checked =>"0").

I tried lot of tricks but couldn't get the desired array format. Can any one help me in this to get the desired array? Thanks in advance.

For your information the required array format for array $classes_data will be as follows:

 Array
    (
    [2] => Array
        (
            [class_id] => 2
            [class_name] => II
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => 11 Engllish
                )

        )

    [3] => Array
        (
            [class_id] => 3
            [class_name] => III
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => Hidi
                    [1] => 11 Maths
                    [2] => 11 Science
                    [3] => 11 Engllish
                )

        )

    [4] => Array
        (
            [class_id] => 4
            [class_name] => IV
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => Physics
                )

        )

    [6] => Array
        (
            [class_id] => 6
            [class_name] => VI
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => Mathematics
                    [1] => dfadadadsagfasrsarasrarBiology
                )

        )

    [7] => Array
        (
            [class_id] => 7
            [class_name] => VII
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => Physics
                    [1] => Chemistry11
                    [2] => 11 Science
                )

        )

    [8] => Array
        (
            [class_id] => 8
            [class_name] => VIII
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => Hidi
                    [1] => 11 Engllish
                )

        )

    [9] => Array
        (
            [class_id] => 9
            [class_name] => IX
            [class_checked] => 0
            [subjects] => Array
                (
                    [0] => Mathematics
                    [1] => Hidi
                    [2] => 11 Science
                )

        )

)

Solution

  • Try:

    foreach($classes_data as $key=>$value) {
        $classes_data[$key]['class_checked'] = 0;
    }