php - 在 php 的 foreach 循环中更改关联数组的 $key

标签 php arrays foreach key associative-array

我有一个这样的数组:

array(
    'firstName' => 'Joe',
    'lastName'  => 'Smith'
    )

我需要遍历数组中的每个元素,最后,数组应该如下所示:

array(
    'FirstName' => 'Joe',
    'LastName'  => 'Smith'
    )

失败的想法是:

    foreach($array as $key => $value)
    {
        $key = ucfirst($key);
    }

这显然行不通,因为数组不是按引用传递的。然而,所有这些尝试都失败了:

    foreach(&$array as $key => $value)
    {
        $key = ucfirst($key);
    }


    foreach($array as &$key => $value)
    {
        $key = ucfirst($key);
    }

我的智慧几乎就此结束。我正在使用 Magento 1.9.0.1 CE,但这与这个问题无关。如果您一定知道,我必须这样做的原因是因为我有一堆对象作为数组返回以组装到 SOAP 客户端中。我使用的 API 要求键以大写字母开头……但是,我不想将对象变量名的首字母大写。我知道这很愚蠢,但我们都会对某人负责,而且有人希望这样。

最佳答案

unset 如果它已经是正确的格式,请先取消设置,否则您将删除刚刚定义的内容:

foreach($array as $key => $value)
    {
        unset($array[$key]);
        $array[ucfirst($key)] = $value;
    }

关于php - 在 php 的 foreach 循环中更改关联数组的 $key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25068571/

相关文章:

java - 从数组中删除元素(Java)

arrays - 计算数组中不同元素的数量

arrays - 如何比较两个数组,删除相似的项目,而不迭代整个数组?

Java - 参数和增强的 For 循环复制问题

javascript - forEach 将输出存储到变量中并在匿名函数外部访问

php - 创建将数据发送到数据库的 php 表单时出现问题

php - 在我需要的 php 文件中包含所有函数还是只包含我需要的函数?

php - Apache 打开的文件太多 (24)

java - 我可以在使用 Iterable.forEach(Consumer) 迭代元素时更改元素吗?

php - PHP 中的文档有标准样式吗?