假设我有一个关联数组:
$array = array(
"key1" => "value",
"key2" => "value2");
我想把这些键都大写。我该怎么做,而不是用一种通用的方式(这意味着我可以应用一个用户定义的函数来应用于密钥名称)?
您可以使用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
函数。
除了上面的答案之外,下面的代码也可以实现。优点是,您可以将其用于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;
}