相关疑难解决方法(0)

在PHP中,如何更改数组元素的键?

我有一个关联数组,key => value其中键是一个数值,但它不是一个连续的数值.密钥实际上是一个ID号,值是一个计数.这对大多数实例都很好,但是我想要一个函数来获取数组的人类可读名称并将其用于键,而不更改值.

我没有看到这样做的函数,但我假设我需要提供旧密钥和新密钥(我都有)并转换数组.有没有一种有效的方法呢?

php arrays associative-array

328
推荐指数
11
解决办法
38万
查看次数

更改阵列中的所有键

我想替换数组中的所有索引键,但我只需要使用像array_map这样的函数(不是foreach),这就是为什么它对我来说有点困难.

实际数组:

$array = [
    'mc_gross' => 10.17,
    'protection_eligibility' => 'Eligible',
    'address_status' => 'unconfirmed',
    'payer_id' => 'STTAC7UV2CVJ4'
];
Run Code Online (Sandbox Code Playgroud)

预期数组:

$array = [
    'McGross' => 10.17,
    'ProtectionEligibility' => 'Eligible',
    'AddressStatus' => 'unconfirmed',
    'PayerId' => 'STTAC7UV2CVJ4'
];
Run Code Online (Sandbox Code Playgroud)

我已经有一个函数将第一个字母大写,并删除所有' _ ':

str_replace(
    "_",
    "",
    implode(
        '_',
        array_map(
            'ucfirst',
            explode(
                '_',
                ucwords(strtolower($key))
            )
        )
    )
);
Run Code Online (Sandbox Code Playgroud)

我试过用array_walk,但是这个函数不能替换索引键,只有值...:

array_walk($array, function ($value, &$key) {
    $key = str_replace("_", "", implode('_', array_map('ucfirst', explode('_', ucwords(strtolower($key))))));
});
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

php arrays

4
推荐指数
1
解决办法
2311
查看次数

php,更改数组中的键?

嗨,我有一个像下面的数组.

  $arr = Array ( [My_name] => Sam [My_location] => United_Kingdom [My_id] => 1 );
Run Code Online (Sandbox Code Playgroud)

我试图改变密钥

  My_name, My_Location, My_id
Run Code Online (Sandbox Code Playgroud)

  Your_name, Your_Location, Your_id
Run Code Online (Sandbox Code Playgroud)

所以最终的数组看起来像

  Array ( [Your_name] => Sam [Your_location] => United_Kingdom [Your_id] => 1 );
Run Code Online (Sandbox Code Playgroud)

我希望像str_replace这样的东西能起作用

   $arrnew = str_replace("My","Your",$arr);
Run Code Online (Sandbox Code Playgroud)

但这只是将"我的"改为"你的",如果"我的"是一个值,而不是一个键.

那我该怎么改变钥匙呢?

谢谢你的帮助.

php arrays

1
推荐指数
1
解决办法
170
查看次数

标签 统计

arrays ×3

php ×3

associative-array ×1