【问题标题】:PHP - Replace array keys with a list of keys predefinedPHP - 用预定义的键列表替换数组键
【发布时间】:2018-10-04 04:51:18
【问题描述】:

我有一个多维数组,它是在废弃网络后得到的。

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
        )
)

问题是我需要将数组键的名称更改为更短的名称:

[DollarUS] - [YenJP] - [EuroEU]

为了让它看起来像这样:

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
        )
)

我尝试了几种方法,但我没有找到结果:

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

【问题讨论】:

标签: php arrays multidimensional-array key


【解决方案1】:
$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]);

【讨论】:

    【解决方案2】:

    你可以试试 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多