php - 如何用 php 中按字母顺序排列的字母更改此数组的值?
问题描述
我试图在另一个数组中转换一个数组,用字母顺序替换值,但是当它找到一个相等的值时,放同一个字母。
这是一个 PHP 脚本。
结果我有这个:
Array
(
[1] => 10014869
[2] => 10014869
[3] => 10010380
[4] => 10112932
[5] => 10112932
[6] => 10113908
[7] => 10115620
[8] => 10014876
[9] => 10017457
[10] => 10010397
)
我想把它转换成这样:
Array
(
[1] => A
[2] => A
[3] => B
[4] => C
[5] => C
[6] => D
[7] => E
[8] => F
[9] => G
[10] => H
)
感谢所有建议
解决方案
我对此的看法:
<?php
$array = [
10014869,
10014869,
10010380,
10112932,
10112932,
10113908,
10115620,
10014876,
10017457,
10010397
];
$map = array_flip(array_values(array_unique($array)));
array_walk($array, function(&$e) use ($map)
{
$e = chr($map[$e] + 65);
});
print_r($array);
结果:
Array
(
[0] => A
[1] => A
[2] => B
[3] => C
[4] => C
[5] => D
[6] => E
[7] => F
[8] => G
[9] => H
)
注意:这仅适用于 <= 26 个不同的条目$array
,下一个字符不会是字母。(有关 91 及以上的 ASCII 值,请参阅 ASCII 表)
推荐阅读
- c++ - 范围运算符需要找到 std 命名空间而不是 boost
- android - 从头开始制作自定义 ROM 需要什么?
- ruby-on-rails - 使用从另一个站点抓取的内容填充 Rails 应用程序
- c# - Azure 移动应用同步服务推送无法插入或更新
- python - 发布数据应该是字节。它不能是 str 类型
- html - 列出用于在 A4 纸上打印的 X div
- docker - 无法在 GCR 中推送图像 - “调用者没有权限‘storage.buckets.create’。”
- docker - Kong Docker 与非 Docker Postgres
- arrays - 如何使用python加入数组并指定从哪个数组?
- ethereum - 相同的智能合约文件,大小不同?