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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (94)

我在表单中有一个关联数组。key => value其中键是数值,但不是顺序数值。键实际上是一个ID号,值是一个计数。对于大多数情况,这都是可以的,但是我想要一个函数来获取数组的可读的名称,并将其用于键,而不需要更改值。

我没有看到这样的函数,但我假设我需要提供旧键和新键(两者都有)并转换数组。有什么有效的方法吗?

提问于
用户回答回答于
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
用户回答回答于

要做到这一点并保持数组的顺序,方法是将数组键放入单独的数组中,查找并替换该数组中的键,然后将其与值组合起来。

下面是一个函数,它就是这样做的:

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 );
}

扫码关注云+社区

领取腾讯云代金券