gpt4 book ai didi

php - 更改数组中的所有键

转载 作者:可可西里 更新时间:2023-10-31 22:42:57 25 4
gpt4 key购买 nike

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

实际数组:

$array = [
'mc_gross' => 10.17,
'protection_eligibility' => 'Eligible',
'address_status' => 'unconfirmed',
'payer_id' => 'STTAC7UV2CVJ4'
];

预期数组:

$array = [
'McGross' => 10.17,
'ProtectionEligibility' => 'Eligible',
'AddressStatus' => 'unconfirmed',
'PayerId' => 'STTAC7UV2CVJ4'
];

我已经有一个函数可以将首字母大写并删除所有“_”:

str_replace(
"_",
"",
implode(
'_',
array_map(
'ucfirst',
explode(
'_',
ucwords(strtolower($key))
)
)
)
);

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

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

预先感谢您的帮助。

最佳答案

如果您不想使用foreach,您可以结合使用array_keysarray_maparray_combine 来实现这一点。

$array = array(
'mc_gross' => 10.17,
'protection_eligibility' => 'Eligible',
'address_status' => 'unconfirmed',
'payer_id' => 'STTAC7UV2CVJ4'
);

//Get keys
$keys = array_keys($array);

//Format keys
function map($key){
return str_replace(' ', '', ucwords(str_replace('_', ' ', $key)));
}

//Map keys to format function
$keys = array_map('map', $keys);

//Use array_combine to map formatted keys to array values
$array = array_combine($keys,$array);

var_dump($array);

这应该输出如下内容:

array(4){
["McGross"]=>float(10.17)
["ProtectionEligibility"]=>string(8) "Eligible"
["AddressStatus"]=>string(11) "unconfirmed"
["PayerId"]=>string(13) "STTAC7UV2CVJ4"
}

相关文档:

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

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

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

编辑

正如@Wrikken 指出的那样,array_values 的使用是多余的,不需要。谢谢指点!

关于php - 更改数组中的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27029304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com