0

I have a multidimensional array that I get after scrapping a web.

Array
(
    [Dollar N. America] => Array
        (
            [Name] => Dollar N. America
            [Buy] => 3.311
            [Sell] => 3.314
        )

    [Yen Japan] => Array
        (
            [Name] => Yen Japan
            [Buy] => 0.028
            [Sell] => 0.033
        )

    [Euro Europe] => Array
        (
            [Name] => Euro Europe
            [Buy] => 3.752
            [Sell] => 3.948
        )
)

The issue is that I need to change the names of the array keys to a shorter name:

[DollarUS] - [YenJP] - [EuroEU]

In order to make it look like this:

Array
(
    [DollarUS] => Array
        (
            [Name] => Dollar N. America
            [Buy] => 3.311
            [Sell] => 3.314
        )

    [YenJP] => Array
        (
            [Name] => Yen Japan
            [Buy] => 0.028
            [Sell] => 0.033
        )

    [EuroEU] => Array
        (
            [Name] => Euro Europe
            [Buy] => 3.752
            [Sell] => 3.948
        )
)

I was trying several ways but I did not find the result:

foreach ($currency as $k => $v){
    $currency[$k]['DolarUS'] = $currency[$k]['Dollar N. America'];
    unset($monedas[$k]['Dollar N. America']);
}   
1

2 Answers 2

2
$array = [
    "Dollar N. America" => [
            "Name" => "Dollar N. America"
            "Buy" => 3.311
            "Sell" => 3.314
        ],

    "Yen Japan" => [
            "Name" => "Yen Japan"
            "Buy" => 0.028
            "Sell" => 0.033
        ],

    "Euro Europe" => [
            "Name" => "Euro Europe"
            "Buy" => 3.752
            "Sell" => 3.948
        ]
];

$replace_with_me = ["Dollar N. America"=>"DollarUS" , "Yen Japan"=>"YenJP" , "Euro Europe"=>"EuroEU"];

foreach($array as $key=>$value){
  $array[$replace_with_me[$key]] = $array[$key];
 unset($array[$key])
}

var_dump($array[$key]);
Sign up to request clarification or add additional context in comments.

Comments

0

You could try array_combine():

http://php.net/manual/en/function.array-combine.php

$keys = ['DollarUS','YenJP','EuroEU'];
$values = [
    'Dollar N. America' => [
        'Name' => 'Dollar N. America'
        'Buy' => 3.311
        'Sell' => 3.314
    ],
    'Yen Japan' => [
        'Name' => 'Yen Japan'
        'Buy' => 0.028
        'Sell' => 0.033
    ],
    'Euro Europe' => [
        'Name' => 'Euro Europe'
        'Buy' => 3.752
        'Sell' => 3.948
    ]
];
$fixedKeys = array_combine($keys,$values);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.