PHP multidimensional array update/add new key in already saved key

samar :

This is previously saved array.

$market_data_array = get_option('market_data');

Array
(
    [Turkey] => Array
        (
            [Gold] => Array
                (
                    [2020] => Array
                        (
                            [March] => Array
                                (
                                    [12] => 25000
                                )

                        )

                )

        )

)

This is how I'm updating the array with new data.

$country_name = 'Turkey';
$rates_property_type = 'Silver';
$year = '2020';
$month = 'March';
$day_date = '12';
$rate_today = 8000;

$market_data_array[] = array(
    "".$country_name."" => array(
        "".$rates_property_type."" => array(
            "".$year."" => array(
                "".$month."" => array(
                    "".$day_date."" => "".$rate_today."",
                ),
            ),
        ),
    ),
);

update_option('market_data', $market_data_array);

This is how new array should be updated.

Array
(
    [Turkey] => Array
        (
            [Gold] => Array
                (
                    [2020] => Array
                        (
                            [March] => Array
                                (
                                    [12] => 25000
                                )

                        )

                )

            [Silver] => Array
                (
                    [2020] => Array
                        (
                            [March] => Array
                                (
                                    [12] => 8000
                                )

                        )

                )

        )

)

I am saving market data for multiple countries with multiple property types in one array & in one WordPress database option.

It seems simple, but my brain is puzzled. It gave me headache from last 5 hours. I will be thankful for your help.

Umair Khan :

Here is another way.

<?php
$market_data_array =array (
    'Turkey' => 
    array (
        'Gold' => 
        array (
            2020 => 
            array (
                'March' => 
                array (
                    12 => 25000
                ),

            ),

        ),

    ),

);

$country_name = 'Turkey';
$rates_property_type = 'Silver';
$year = '2020';
$month = 'March';
$day_date = '12';
$rate_today = 8000;

$market_data_array[$country_name][$rates_property_type][$year][$month][$day_date] = $rate_today;
print_r($market_data_array);

Sample: https://3v4l.org/5MkRI

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=302161&siteId=1