Определить на каком месте в алфавите выбранный символ

185
21 сентября 2017, 16:57

Input: ВАЗ Out: 319

Не обязательно возвращать так, можно по коду символу ascii Входная строка может быть как на латинице так и на кириллице, учесть, что "А" и "а" разные символы и "место" у них будет разное

$key = 'VAZ';
$length = count($key); //длина ключа
for ($i=0; $i <$length ; $i++) { 
    echo ord($key[$i]). ' | ';
}

на латинице всё норм, выводит код символа как надо, а вот на кириллице нет, показывает либо 209, либо 208 на всех символах русских

когда делаю echo на $key, то там кракозябры, как вылечить?

Answer 1

Что-то типа этого. Пишу на коленке так что, возможно есть более элегантное решение.

$key = 'VAZ'; 
$offset_lower = 123; // нужно указать правильное значение начала позиции по таблице ASCII 
$offset_upper = 345; // нужно указать правильное значение начала позиции по таблице ASCII 
$length = count($key); //длина ключа 
for ($i=0; $i <$length ; $i++) {  
    echo (ord($key[$i]) - (mb_strtoupper($key[$i]) === $key[$i] ? $offset_upper : $offset_lower)). ' | '; 
}

READ ALSO
php закрытие / слэш

php закрытие / слэш

Доброго вечера как бы правильно сделать

236
Инициализация вектора в структуре

Инициализация вектора в структуре

Есть такая структура:

298
Как напечатать символ дельта? [дубликат]

Как напечатать символ дельта? [дубликат]

На данный вопрос уже ответили:

222
Как хранится имя переменной?

Как хранится имя переменной?

Помогите разобраться поглубже чем по сути является именованная ячейка памяти (переменная)Не могу правильно сформулировать свой вопрос,...

205