首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中,如何更改数组元素的键?

在PHP中,如何更改数组元素的键?
EN

Stack Overflow用户
提问于 2008-10-28 01:09:49
回答 20查看 499.2K关注 0票数 392

我有一个形式为key => value的关联数组,其中key是一个数值,但它不是连续的数值。键实际上是一个ID号,值是一个计数。这对于大多数情况都很好,但是我想要一个函数,它可以获取数组的人类可读的名称,并使用该名称作为键,而不需要更改值。

我没有看到这样做的函数,但我假设我需要提供旧的密钥和新的密钥(这两个都是我拥有的)并转换数组。有没有一种有效的方法来做到这一点?

EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2008-10-27 17:12:46

代码语言:javascript
复制
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
票数 646
EN

Stack Overflow用户

发布于 2014-01-23 12:57:49

这样做并保留数组的顺序的方法是将数组键放入一个单独的数组中,找到并替换该数组中的键,然后将其与值组合回去。

这里有一个函数可以做到这一点:

代码语言:javascript
复制
function change_key( $array, $old_key, $new_key ) {

    if( ! array_key_exists( $old_key, $array ) )
        return $array;

    $keys = array_keys( $array );
    $keys[ array_search( $old_key, $keys ) ] = $new_key;

    return array_combine( $keys, $array );
}
票数 109
EN

Stack Overflow用户

发布于 2010-11-17 01:00:45

如果您的array是通过数据库查询构建的,则可以直接从mysql语句更改键:

而不是

代码语言:javascript
复制
"select ´id´ from ´tablename´..."

使用像这样的东西:

代码语言:javascript
复制
"select ´id´ **as NEWNAME** from ´tablename´..."
票数 59
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/240660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档