하이픈(-)과 숫자가 함께 포함된 문자열에서 마지막 하이픈 뒤에 있는 값만 추출해야 하는 경우가 종종 있습니다. 예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.
"John-45-98-78-7898906756"
이 문자열에서 최종적으로 얻고자 하는 값은 7898906756입니다. PHP에서는 explode() 함수를 활용하면 간단하게 해결할 수 있습니다.
1. explode() 함수로 문자열 분리하기
explode() 함수는 지정한 구분자를 기준으로 문자열을 배열로 나누어 줍니다. 하이픈(-)을 구분자로 사용하면 다음과 같은 배열이 생성됩니다.
Array
(
[0] => John
[1] => 45
[2] => 98
[3] => 78
[4] => 7898906756
)
배열의 마지막 요소(인덱스 4)에 접근하면 원하는 숫자를 얻을 수 있습니다.
2. 전체 예제 코드
<!DOCTYPE html>
<html>
<body>
<?php
$values = "John-45-98-78-7898906756";
$values = explode("-", $values);
$values = $values[4];
echo $values;
?>
</body>
</html>
실행 결과
7898906756
3. 더 안전한 방법: end() 함수 활용
위 예제처럼 하이픈 개수가 고정되어 있다면 인덱스 번호를 직접 지정해도 문제가 없습니다. 하지만 하이픈 개수가 달라질 수 있는 문자열이라면 end() 함수를 사용하는 것이 훨씬 안전합니다.
<?php
$values = "John-45-98-78-7898906756";
$parts = explode("-", $values);
$lastValue = end($parts);
echo $lastValue;
?>
end() 함수는 배열의 내부 포인터를 마지막 요소로 이동시킨 후 그 값을 반환하므로, 하이픈 개수와 관계없이 항상 마지막 하이픈 뒤의 값을 정확하게 추출할 수 있습니다.
마무리
정리하면, PHP에서 마지막 하이픈 뒤의 숫자를 추출하는 핵심은 explode()로 문자열을 분리한 뒤 마지막 배열 요소를 가져오는 것입니다. 하이픈 개수가 고정적이라면 인덱스 접근 방식을, 유동적이라면 end() 함수를 사용하는 것이 바람직합니다.