根据另一个查找/映射数组替换数组中的键

新手上路,请多包涵

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

我没有看到执行此操作的函数,但我假设我需要提供旧密钥和新密钥(我都有)并转换数组。有没有一种有效的方法来做到这一点?

原文由 Thomas Owens 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 426
2 个回答
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);

原文由 KernelM 发布,翻译遵循 CC BY-SA 2.5 许可协议

这是一个实验(测试)

初始数组(像 0,1,2 这样的键)

 $some_array[] = '6110';//
$some_array[] = '6111';//
$some_array[] = '6210';//

我必须将键名更改为例如 human_readable15human_readable16human_readable17

类似于已经发布的东西。在每个循环中,我设置必要的键名并从初始数组中删除相应的键。

例如,我插入 mysql $some_array 得到了 lastInsertId 我需要将键值对发送回 jquery。

 $first_id_of_inserted = 7;//lastInsertId
$last_loop_for_some_array = count($some_array);

for ($current_loop = 0; $current_loop < $last_loop_for_some_array ; $current_loop++) {

$some_array['human_readable'.($first_id_of_inserted + $current_loop)] = $some_array[$current_loop];//add new key for intial array

unset( $some_array[$current_loop] );//remove already renamed key from array

}

这是带有重命名键的新数组

echo '<pre>', print_r($some_array, true), '</pre>$some_array in '. basename(__FILE__, '.php'). '.php <br/>';

如果不是 human_readable15human_readable16human_readable17 需要其他东西。然后可以创建这样的东西

$arr_with_key_names[] = 'human_readable';
$arr_with_key_names[] = 'something_another';
$arr_with_key_names[] = 'and_something_else';

for ($current_loop = 0; $current_loop < $last_loop_for_some_array ; $current_loop++) {

    $some_array[$arr_with_key_names[$current_loop]] = $some_array[$current_loop];//add new key for intial array

    unset( $some_array[$current_loop] );//remove already renamed key from array

    }

原文由 Andris 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题