将单词中的所有字符转换为 PHP 中的整数
Convert all character in a word to an integer in PHP
是否可以像
一样将单词中的所有字符转换为数字
a = 1, // uppercase too
b = 2,
c = 3,
d = 4,
e = 5, // and so on til letter 'z'
space = 0 // i'm not sure about if space really is equals to 0
这是我的看法。
$string_1 = "abed"; // only string
$string_2 = "abed 5"; // with int
$result_1 = convert_to_int($string_1); // output is 1254
$result_2 = convert_to_int($string_2); // output is 125405
看到了一些相关的问题,但是没有直接回答我的问题,我自己也不太理解和解决,所以我来问一下。
完整代码如下:
$s = 'abcde';
$p = str_split($s);
foreach($p as $c) {
echo ord($c) - ord('a') + 1;
}
要使用您显示的数字 a = 1
等...然后只需进行不区分大小写的替换:
$result = str_ireplace(range('a', 'z'), range(1, 26), $string);
如果您想要 ASCII 值然后拆分为数组,映射到 ord
值并加入:
$result = implode(array_map(function($v) { return ord($v); }, str_split($string)));
创建一个数组,并在第一个元素中插入一个space。然后用range()
生成一个a
到z
的数组。使用 strtolower()
强制输入小写(因为我们生成的 range()
中的字符也是小写的。
然后用 str_replace()
进行替换,它接受数组作为值。键是值将被替换的值。
function convert_to_int($string) {;
$characters = array_merge([' '], range('a', 'z'));
return str_replace(array_values($characters), array_keys($characters), $string);
}
- 在 https://3v4l.org/cHZap
现场演示
使用正则表达式应该是这样的:
$search = array('/[A-a]/', '/[B-b]/', '/[C-c]/', '/[D-d]/', '/[" "]/');
$replace = array('1', '2', '3', '4', '5');
$final = preg_replace($search, $replace,"abcd ABCD a55");
echo $final;
Output: 1234512345155
是否可以像
一样将单词中的所有字符转换为数字a = 1, // uppercase too
b = 2,
c = 3,
d = 4,
e = 5, // and so on til letter 'z'
space = 0 // i'm not sure about if space really is equals to 0
这是我的看法。
$string_1 = "abed"; // only string
$string_2 = "abed 5"; // with int
$result_1 = convert_to_int($string_1); // output is 1254
$result_2 = convert_to_int($string_2); // output is 125405
看到了一些相关的问题,但是没有直接回答我的问题,我自己也不太理解和解决,所以我来问一下。
完整代码如下:
$s = 'abcde';
$p = str_split($s);
foreach($p as $c) {
echo ord($c) - ord('a') + 1;
}
要使用您显示的数字 a = 1
等...然后只需进行不区分大小写的替换:
$result = str_ireplace(range('a', 'z'), range(1, 26), $string);
如果您想要 ASCII 值然后拆分为数组,映射到 ord
值并加入:
$result = implode(array_map(function($v) { return ord($v); }, str_split($string)));
创建一个数组,并在第一个元素中插入一个space。然后用range()
生成一个a
到z
的数组。使用 strtolower()
强制输入小写(因为我们生成的 range()
中的字符也是小写的。
然后用 str_replace()
进行替换,它接受数组作为值。键是值将被替换的值。
function convert_to_int($string) {;
$characters = array_merge([' '], range('a', 'z'));
return str_replace(array_values($characters), array_keys($characters), $string);
}
- 在 https://3v4l.org/cHZap 现场演示
使用正则表达式应该是这样的:
$search = array('/[A-a]/', '/[B-b]/', '/[C-c]/', '/[D-d]/', '/[" "]/');
$replace = array('1', '2', '3', '4', '5');
$final = preg_replace($search, $replace,"abcd ABCD a55");
echo $final;
Output: 1234512345155