Как преобразовать некоторый символ в числовой в php?

Мне нужна помощь, чтобы изменить символ в php. У меня есть код из Интернета:

char dest='a'; int conv=(int)dest; 

Могу ли я использовать этот код для преобразования символа в числовой? Или у вас есть идеи? Я просто хочу показать результат как десятичное число:

 if null == 0 if A == 1 

Используйте ord (), чтобы вернуть значение ascii. Вычитайте 96, чтобы вернуть число, где a = 1, b = 2 ….

Буквы верхнего и нижнего регистра имеют разные значения ASCII, поэтому, если вы хотите обрабатывать их одинаково, вы можете использовать strtolower () для преобразования верхнего регистра в нижний регистр.

Чтобы обрабатывать случай NULL , просто используйте if($dest) . Это будет верно, если $dest – это нечто иное, чем NULL или 0 .

PHP – это свободно типизированный язык, поэтому нет необходимости объявлять типы. Итак, char dest='a'; это неверно. Переменные имеют $ префикс в PHP и не объявляют тип, поэтому он должен быть $dest = 'a'; ,

Живой пример

 <?php function toNumber($dest) { if ($dest) return ord(strtolower($dest)) - 96; else return 0; } // Let's test the function... echo toNumber(NULL) . " "; echo toNumber('a') . " "; echo toNumber('B') . " "; echo toNumber('c'); // Output is: // 0 1 2 3 ?> 

PS: Здесь вы можете посмотреть значения ASCII .

Это может помочь вам: http://www.php.net/manual/en/function.ord.php

Он действительно работает так же, как в примере, за исключением того, что вы должны использовать синтаксис php (и в качестве побочного элемента: язык, который, по вашему мнению, был наиболее вероятным, он не делал то же самое).

Так:

 $in = "123"; $out = (int)$in; 

Впоследствии будет выполнено следующее:

 $out === 123 

На это очень сложно ответить, потому что это не вопрос, а просто немного.
Но если вы спросите.
Кажется, вам нужна таблица переводов, которая определяет ссылки между буквами и номерами

 A -> 2 B -> 3 C -> 4 S -> 1 

или что-то еще.
Вы можете достичь этого, используя массив, в котором будут указаны эти буквы и значения – нужные числа.

 $defects_arr = array( 'A' -> 2, 'B' -> 3, 'C' -> 4' 'S' -> 1 }; 

Таким образом, вы можете преобразовать эти буквы в числа

 $letter = 'A'; $number = $defects_arr($letter); echo $number; // outputs 1 

Но это все еще не то, что вы хотите.
Имеют ли эти типы дефектов какие-либо подробные эквиваленты? Если да, почему бы не использовать их вместо букв?

Рассказывать всю историю, а не немного, поможет вам избежать ошибок и сэкономить массу времени, как ваших, так и тех, кто будет отвечать.

Итак, если вам нужен код ASCII, вам нужно будет:

 $dest = 'a'; $conv = ord($dest); 

Если вы хотите что-то вроде:

 a == 1 b == 2 . . . 

ты должен сделать:

 $dest = 'a'; $conv = ord($dest)-96; 

Для получения дополнительной информации о кодах ASCII: http://www.asciitable.com/

И для функции ord: http://www.php.net/manual/en/function.ord.php