ProgramingTip

PHP를 사용하여 다음 문자를 가장 쉽게 사용하는 방법

bestdevel 2020. 11. 10. 22:05
반응형

PHP를 사용하여 다음 문자를 가장 쉽게 사용하는 방법


a에서 z까지의 문자가 주어지면 PHP를 사용하여 알파벳의 다음 문자를 얻는 가장 쉬운 방법은 무엇입니까?


일을 추론이 효율적인 방법 나의 의견입니다 만 증가 문자열 변수를.

$str = 'a';
echo ++$str; // prints 'b'

$str = 'z';
echo ++$str; // prints 'aa' 

표시되는 것처럼 증분 'z''aa'대신하는 대신에 원하는 경우 'a'결과의 길이를 확인하고 >1할 수 있습니다.

$ch = 'a';
$next_ch = ++$ch; 
if (strlen($next_ch) > 1) { // if you go beyond z or Z reset to a or A
 $next_ch = $next_ch[0];
}

Z를 눌렀을 때 원하는 작업에 따라 다르지만 몇 가지 옵션이 있습니다.

$nextChar = chr(ord($currChar) + 1); // "a" -> "b", "z" -> "{"

PHP의 range()기능 을 사용할 수 있습니다 .

$chars = range('a', 'z');  // ['a', 'b', 'c', 'd', ...]

글쎄, 그것은 당신이 "에지 케이스"로 정확히 무엇을 할 것인지에 달려 있습니다. 캐릭터가 z또는 일 때 어떤 결과를 기대 Z하십니까? 당신의 다음 문자는 같은 경우 , 또는 바로 다음 문자, 기간?

이에 대한 답을 모른 채 아주 기본적인 경우에는 다음과 같이 할 수 있습니다.

$next_character = chr(ord($current_character) + 1);

당신 Z있을 때이 당신을 줄 것입니다 [, 그리고 z당신은 ASCII 값에 따라 {것입니다.


댓글에 따라 수정 :

같은 대소 문자의 다음 문자가 필요한 경우 위 줄 간단한 검사를 추가 할 수 있습니다.

if ($next_character == '[')
    $next_character = 'A';
else if ($next_character == '{')
    $next_character = 'a';

이것은 매우 간단한 작업입니다. 이런 경우에는 효율성에 대해 걱정할 필요가 없습니다.


어떻게 사용하는 방법에 대한 ORD ()와 CHR ()을 ?

<?php
    $next = chr(ord($prev)+1);
?>

이 경우 소문자 만 신경 쓰이다 여기에 게시 된 답변에 따라 다음 코드를 사용하겠습니다.

function nextLetter(&$str) {
 $str = ('z' === $str ? 'a' : ++$str);
}

도와 주셔서 감사합니다!


$val = 'z';
echo chr((((ord($val) - 97) + 1) % 26) + 97);

쉬운 쉬운 :-)


모든 문자의 배열을 만들고 기존 문자를 검색하고 다음 문자를 반환합니다. 마지막 편지에 도달하면 첫 번째 편지를 반환하십시오.

참고 URL : https://stackoverflow.com/questions/2673360/most-efficient-way-to-get-next-letter-in-the-alphabet-using-php

반응형