我有一个形式为key => value
的关联数组,其中key是一个数值,但它不是连续的数值。键实际上是一个ID号,值是一个计数。这对于大多数情况都很好,但是我想要一个函数,它可以获取数组的人类可读的名称,并使用该名称作为键,而不需要更改值。
我没有看到这样做的函数,但我假设我需要提供旧的密钥和新的密钥(这两个都是我拥有的)并转换数组。有没有一种有效的方法来做到这一点?
发布于 2008-10-27 17:12:46
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
发布于 2014-01-23 12:57:49
这样做并保留数组的顺序的方法是将数组键放入一个单独的数组中,找到并替换该数组中的键,然后将其与值组合回去。
这里有一个函数可以做到这一点:
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 );
}
发布于 2010-11-17 01:00:45
如果您的array
是通过数据库查询构建的,则可以直接从mysql
语句更改键:
而不是
"select ´id´ from ´tablename´..."
使用像这样的东西:
"select ´id´ **as NEWNAME** from ´tablename´..."
https://stackoverflow.com/questions/240660
复制相似问题