45

I've an array as follows named $test_package_data. For the reference I'm printing first two elements of it:

Array
(
    [0] => Array
        (
            [test_pack_id] => 9f27643023a83addd5eed41c4aade840
            [test_pack_name] => Exams Combo
            [test_pack_desc] => This Package contains 24 tests of Reasoning, English and Quantitative Aptitude.

Total Tests in this Package : 26
            [test_pack_type_id] => 3
            [test_pack_image] => 
            [test_pack_validity_year] => 0
            [test_pack_validity_month] => 3
            [test_pack_validity_days] => 0
            [test_pack_plan] => paid
            [test_pack_price] => 399.00
            [test_pack_no_tests] => 0
            [test_pack_publish] => yes
            [test_pack_sold] => 1
            [test_pack_created_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_updated_staff_id] => 81c4e3607c7e56bbf5461ef150437675
            [test_pack_created_date] => 303
            [test_pack_updated_date] => 1349235701
            [test_pack_purchase_date] => 255
            [category_detail] => Array
                (
                    [0] => Array
                        (
                            [test_pack_category_id] => 8
                            [category_name] => English Language
                            [test_detail] => Array
                                (
                                    [0] => Array
                                        (
                                            [test_id] => 91
                                            [test_name] => English Language 8
                                        )

                                    [1] => Array
                                        (
                                            [test_id] => 90
                                            [test_name] => English Language 7
                                        )

                                    [2] => Array
                                        (
                                            [test_id] => 88
                                            [test_name] => English Language 6
                                        )

                                    [3] => Array
                                        (
                                            [test_id] => 89
                                            [test_name] => English Language 5
                                        )

                                    [4] => Array
                                        (
                                            [test_id] => 87
                                            [test_name] => English Language 4
                                        )

                                    [5] => Array
                                        (
                                            [test_id] => 86
                                            [test_name] => English Language 3
                                        )

                                    [6] => Array
                                        (
                                            [test_id] => 85
                                            [test_name] => English Language 2
                                        )

                                    [7] => Array
                                        (
                                            [test_id] => 97
                                            [test_name] => English Language 1
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [test_pack_category_id] => 4
                            [category_name] => All Subjects
                            [test_detail] => Array
                                (
                                    [0] => Array
                                        (
                                            [test_id] => 93
                                            [test_name] => Mega 2
                                        )

                                    [1] => Array
                                        (
                                            [test_id] => 92
                                            [test_name] => Mega 1
                                        )

                                )

                        )

                    [2] => Array
                        (
                            [test_pack_category_id] => 7
                            [category_name] => Quantitative Aptitude
                            [test_detail] => Array
                                (
                                    [0] => Array
                                        (
                                            [test_id] => 83
                                            [test_name] => Quantitative Aptitude 8
                                        )

                                    [1] => Array
                                        (
                                            [test_id] => 82
                                            [test_name] => Quantitative Aptitude 7
                                        )

                                    [2] => Array
                                        (
                                            [test_id] => 81
                                            [test_name] => Quantitative Aptitude 6
                                        )

                                    [3] => Array
                                        (
                                            [test_id] => 80
                                            [test_name] => Quantitative Aptitude 5
                                        )

                                    [4] => Array
                                        (
                                            [test_id] => 79
                                            [test_name] => Quantitative Aptitude 4
                                        )

                                    [5] => Array
                                        (
                                            [test_id] => 78
                                            [test_name] => Quantitative Aptitude 3
                                        )

                                    [6] => Array
                                        (
                                            [test_id] => 77
                                            [test_name] => Quantitative Aptitude 2
                                        )

                                    [7] => Array
                                        (
                                            [test_id] => 76
                                            [test_name] => Quantitative Aptitude 1
                                        )

                                )

                        )

                    [3] => Array
                        (
                            [test_pack_category_id] => 6
                            [category_name] => Logical Reasoning
                            [test_detail] => Array
                                (
                                    [0] => Array
                                        (
                                            [test_id] => 75
                                            [test_name] => Reasoning 8
                                        )

                                    [1] => Array
                                        (
                                            [test_id] => 74
                                            [test_name] => Reasoning 7
                                        )

                                    [2] => Array
                                        (
                                            [test_id] => 73
                                            [test_name] => Reasoning 6
                                        )

                                    [3] => Array
                                        (
                                            [test_id] => 72
                                            [test_name] => Reasoning 5
                                        )

                                    [4] => Array
                                        (
                                            [test_id] => 71
                                            [test_name] => Reasoning 4
                                        )

                                    [5] => Array
                                        (
                                            [test_id] => 70
                                            [test_name] => Reasoning 3
                                        )

                                    [6] => Array
                                        (
                                            [test_id] => 69
                                            [test_name] => Reasoning 2
                                        )

                                    [7] => Array
                                        (
                                            [test_id] => 68
                                            [test_name] => Reasoning 1
                                        )

                                )

                        )

                )

        )

    [1] => Array
        (
            [test_pack_id] => e7e95de96987cc7c89c1f0183110fb38
            [test_pack_name] => Aptitude Reasoning
            [test_pack_desc] => This package contains 8 tests on Reasoning.
            [test_pack_type_id] => 3
            [test_pack_image] => 
            [test_pack_validity_year] => 0
            [test_pack_validity_month] => 3
            [test_pack_validity_days] => 0
            [test_pack_plan] => free
            [test_pack_price] => 0.00
            [test_pack_no_tests] => 0
            [test_pack_publish] => yes
            [test_pack_sold] => 4
            [test_pack_created_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_updated_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_created_date] => 303
            [test_pack_updated_date] => 1347127387
            [test_pack_purchase_date] => 110
            [category_detail] => Array
                (
                    [0] => Array
                        (
                            [test_pack_category_id] => 6
                            [category_name] => Logical Reasoning
                            [test_detail] => Array
                                (
                                    [0] => Array
                                        (
                                            [test_id] => 75
                                            [test_name] => Reasoning 8
                                        )

                                    [1] => Array
                                        (
                                            [test_id] => 74
                                            [test_name] => Reasoning 7
                                        )

                                    [2] => Array
                                        (
                                            [test_id] => 73
                                            [test_name] => Reasoning 6
                                        )

                                    [3] => Array
                                        (
                                            [test_id] => 72
                                            [test_name] => Reasoning 5
                                        )

                                    [4] => Array
                                        (
                                            [test_id] => 71
                                            [test_name] => Reasoning 4
                                        )

                                    [5] => Array
                                        (
                                            [test_id] => 70
                                            [test_name] => Reasoning 3
                                        )

                                    [6] => Array
                                        (
                                            [test_id] => 69
                                            [test_name] => Reasoning 2
                                        )

                                    [7] => Array
                                        (
                                            [test_id] => 68
                                            [test_name] => Reasoning 1
                                        )

                                )

                        )

                )

        )
)

Now I want to add a new key-value pair named [count] => '$some_value' in this array in every element after the key-value pair [test_pack_purchase_date](say after [test_pack_purchase_date] => 255. How should I do this? Can anyone help me in this regard? Thanks in advance.

4
  • You can not really change the order in an array apart from deleting, adding, readding. Commented Jul 8, 2013 at 10:37
  • 1
    How are you creating the array? Commented Jul 8, 2013 at 10:37
  • array_merge should help Commented Jul 8, 2013 at 10:37
  • 2
    you can't, not really. PHP assoc arrays are, essentialy structs. That means that, in order for the key's to be sorted, the array has to be reconstructed. appending the key and then writing up your own uksort function might work, or json_encode, and str_replace-ing your new key-value pair in the correct position before json_decode($str, true) Commented Jul 8, 2013 at 10:50

4 Answers 4

135

If you are creating new array then try this :

$arr = ['key' => 'value'];

And if array is already created then try this :

$arr['key'] = 'value';

Sign up to request clarification or add additional context in comments.

2 Comments

When I do this, I get only last element ... for($i= 1; $i<=$5; $i++) { $EACH_POST_QUERY = mysql_query("SELECT item_id FROM likes WHERE item_id='$i'"); $EACH_POST_TOTAL_LIKES = mysql_num_rows($EACH_POST_QUERY); $EACH_POST_RESULT = array($i => $EACH_POST_TOTAL_LIKES); }
@KalpeshSingh: because you are creating new array every time, change the last line with this $EACH_POST_RESULT[] = $EACH_POST_TOTAL_LIKES; And I highly recommend you to use PDO instead of deprecated mysql_connect(), you can find more info about PDO here
8
foreach($test_package_data as $key=>$data ) {

   $category_detail_arr = $test_package_data[$key]['category_detail'];

   foreach( $category_detail_arr as $i=>$value ) {
     $test_package_data[$key]['category_detail'][$i]['count'] = $some_value;////<----Here
   }

}

Comments

2

To add:

$arr["key"] = "value";

Then simply return $arr

Can't return directly like this way return $arr["key"] = "value";

Comments

-4

Try this:

foreach($array as $k => $obj) { 
    $obj->{'newKey'} = "value"; 
}

1 Comment

The question is about PHP associative arrays, and this does not fully answer their question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.