43

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.

PHPLover
  • 1
  • 51
  • 158
  • 311
  • You can not really change the order in an array apart from deleting, adding, readding. – str Jul 08 '13 at 10:37
  • 1
    How are you creating the array? – Dale Jul 08 '13 at 10:37
  • array_merge should help – Robert Jul 08 '13 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`](http://www.php.net/manual/en/function.uksort.php) function might work, or `json_encode`, and `str_replace`-ing your new key-value pair in the correct position before `json_decode($str, true)` – Elias Van Ootegem Jul 08 '13 at 10:50

4 Answers4

126

If you are creating new array then try this :

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

And if array is already created then try this :

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

Martijn
  • 15,791
  • 4
  • 36
  • 68
dakshbhatt21
  • 3,558
  • 3
  • 31
  • 40
  • 1
    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); }` – Kalpesh Singh Apr 03 '16 at 08:32
  • 1
    @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](https://acomputerengineer.wordpress.com/2013/06/16/pdo-connection-class-in-php-oop-approach-with-singleton-pattern/) – dakshbhatt21 Apr 03 '16 at 12:37
9
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
   }

}
Goutam Pal
  • 1,763
  • 1
  • 10
  • 14
1

To add:

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

Then simply return $arr

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

-4

Try this:

foreach($array as $k => $obj) { 
    $obj->{'newKey'} = "value"; 
}
Mohammad Usman
  • 37,952
  • 20
  • 92
  • 95
Anitha
  • 9
  • 1
  • 3