PHP сложение / вычитание букв

#php

#php

Вопрос:

У меня есть следующий тестовый код:

 <?php

$letter = 'A';
$letter  ;
$letter  ;

echo $letter.'<br>';  // C

$letter  ;
$letter  ;
$letter  ;

echo $letter.'<br>';  // F

// how to add plus 3 letters
// so that 
// $letter   3 => I
  

Как показано здесь, используя $letter или $letter-- , я могу увеличить или уменьшить символ. Есть ли способ, которым я могу сделать что-то вроде $letter 3 , чтобы в сумме получилось 3 буквы.

Я знаю, что могу создать функцию с циклом, которая будет добавлять символ за символом, и в конце я получу результат. Но есть ли способ лучше?

Комментарии:

1. Все предлагают добавить ‘3’, но это не работает ! 🙂

2. Кто-нибудь вообще прочитал вопрос?

3. OP вообще ответил на вопрос в Google?

4. И кто-нибудь (из тех, кто предлагал $ l 3) действительно потратил пять секунд на тестирование предлагаемого решения? sscce.org работает обоими способами; пожалуйста, протестируйте такие простые трехстрочные варианты.

Ответ №1:

Могут быть решения получше, но самый быстрый способ, который я могу придумать, это:

   // get ASCII code of first letter
$ascii = ord('A');

  // echo letter for  3
echo chr($ascii   3);
  

имейте в виду, что после Z вы получите другие символы

Комментарии:

1. Но имейте в виду, что это решение (как уже упоминал грисси) не идентично подходу $ x . функция increment_string() php ведет себя как perl s string increment, i.e. $letter = ‘Z’; echo $letter;` печатает AA .

Ответ №2:

Попробуйте это…

       $letter = ord('A') 3;
      echo chr($letter);
  

Ответ №3:

Может быть, это сработает:

 $x = 'G';
$y = range('A','Z');
echo $y[array_search($x,$y) 3];
  

Ответ №4:

Старая тема, но на случай, если кто-то будет искать. Создайте массив букв, нужная буква как в электронной таблице.

 $alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M',..........'AY','AZ');
//add 36 to the letter A
$val = (array_search('A',$alphabet))   36;
echo $alphabet[$val]."<BR>";
  

Комментарии:

1. Это вообще не отвечает на вопрос.

Ответ №5:

Мне не очень нравится ни один из этих ответов, поскольку они не повторяют функцию PHP. Ниже, вероятно, самый простой способ повторить это.

 function addLetters($letter,$lettersToAdd){
   for ($i=0;$i<$lettersToAdd;$i  ){
      $letter  ;
   }
   return $letter;
}

echo addLetters('G',4);
echo "n";
echo addLetters('Z',4);
  

Дает
K
ОБЪЯВЛЕНИЕ