Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP 배열에서 가장 긴 문자열 길이 구하는 방법

PHP에서 배열에 포함된 여러 문자열 중 가장 긴 문자열의 길이를 구해야 하는 경우가 종종 있습니다. 이럴 때는 array_map 함수와 max 함수를 조합하면 아주 간단하게 해결할 수 있습니다.

핵심 원리

array_map('strlen', $array)를 사용하면 배열의 모든 요소에 대해 strlen 함수가 적용되어, 각 문자열의 길이로 이루어진 새로운 배열이 반환됩니다. 그다음 max 함수를 적용하면 해당 길이 배열 중 최댓값, 즉 가장 긴 문자열의 길이를 얻을 수 있습니다.

기본 문법

$max_len = max(array_map('strlen', $array));

예제 코드

아래 예제는 문자열 배열에서 가장 긴 문자열의 길이를 구하는 전체 과정을 보여줍니다.

<?php
$array = array("a", "Ab", "abcd", "abcdfegh", "achn");
$max_len = max(array_map('strlen', $array));
echo $max_len;
?>

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 배열의 요소 중 "abcdfegh"가 8글자로 가장 길기 때문입니다.

8

동작 방식 단계별 설명

  1. 1단계: array_map('strlen', $array)가 배열의 각 요소에 strlen을 적용합니다.
  2. 2단계: 각 문자열의 길이 값들인 [1, 2, 4, 8, 4] 배열이 생성됩니다.
  3. 3단계: max()가 이 배열에서 최대값인 8을 반환합니다.

참고 사항

만약 가장 긴 문자열 자체(길이가 아닌 문자열)가 필요하다면, array_reduceusort를 활용하는 방법도 있습니다. 또한 한글처럼 멀티바이트 문자가 포함된 배열이라면 strlen 대신 mb_strlen을 콜백으로 사용하는 것이 정확한 글자 수를 계산하는 데 유리합니다.