【发布时间】:2013-07-25 17:23:45
【问题描述】:
假设我有一个关联数组:
$array = array(
"key1" => "value",
"key2" => "value2");
我想让键全部大写。我会怎么做而不是通用方式(这意味着我可以应用用户定义的函数来应用到键名)?
【问题讨论】:
标签: php associative-array array-map
假设我有一个关联数组:
$array = array(
"key1" => "value",
"key2" => "value2");
我想让键全部大写。我会怎么做而不是通用方式(这意味着我可以应用用户定义的函数来应用到键名)?
【问题讨论】:
标签: php associative-array array-map
可以使用php的array_change_key_case函数
<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>
【讨论】:
令人惊讶的是,有一个array_change_key_case function。
【讨论】:
除了上面的答案——下面的代码也可以解决问题。好处是您可以将其用于keys 上的任何操作,而不是仅 制作密钥uppercase。
<?php
$arr = array(
"key1" => "value",
"key2" => "value2"
);
echo "<pre>";print_r($arr);echo "</pre>";
$arra = array_combine(
array_map(function($k){
return strtoupper($k);
}, array_keys($arr)
), $arr);
echo "<pre>";print_r($arra);echo "</pre>";
此代码输出为:
Array
(
[key1] => value
[key2] => value2
)
Array
(
[KEY1] => value
[KEY2] => value2
)
所以这只是一个替代和更通用的解决方案来改变数组的keys。
谢谢。
【讨论】:
您可以使用 foreach 循环:
$newArray = array();
foreach ($array as $k => $v) {
$newArray[strtoupper($k)] = $v;
}
【讨论】: