0

假设我有一个关联数组:

    $array = array(
      "key1" => "value",
      "key2" => "value2");

我想让键全部大写。我会怎么做而不是通用方式(这意味着我可以应用用户定义的函数来应用到键名)?

4

4 回答 4

5

可以使用php的array_change_key_case函数

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>
于 2013-07-25T17:28:16.237 回答
3

令人惊讶的是,有一个array_change_key_case函数

于 2013-07-25T17:28:55.183 回答
1

除了上面的答案——下面的代码可以解决问题。好处是您可以将其用于任何操作,而不仅仅是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

谢谢。

于 2015-04-30T06:34:53.060 回答
0

您可以使用 foreach 循环:

$newArray = array();
foreach ($array as $k => $v) {
    $newArray[strtoupper($k)] = $v;
}
于 2013-07-25T17:29:15.310 回答