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

PHP에서 짝수 인덱스에 '짝수' 텍스트로 배열 값을 표시하는 방법

PHP에서 배열의 짝수 인덱스 위치에 "짝수"라는 텍스트를 표시하고 싶다면 for 반복문조건 연산자(삼항 연산자)를 함께 사용하면 간단하게 구현할 수 있습니다.

핵심 아이디어는 나머지 연산자(%)를 활용해 현재 카운터 값이 짝수인지 판별한 뒤, 짝수라면 문자열을 저장하고 홀수라면 숫자 그대로 저장하는 것입니다.

예제 코드

<!DOCTYPE html>
<html>
<body>
<?php
    $arrayList = [];
    for ($counter = 0; $counter < 5; $counter++) {
        ($counter%2) ? ($arrayList[] = $counter) : ($arrayList[] = "Even");
    }
    for ($counter = 0; $counter < 5; $counter++) {
        echo $arrayList[$counter]," ";
    }
?>
</body>
</html>

출력 결과

Even 1 Even 3 Even

코드 동작 원리

위 예제의 핵심은 다음 한 줄입니다.

($counter%2) ? ($arrayList[] = $counter) : ($arrayList[] = "Even");

이 삼항 연산자는 다음과 같이 작동합니다.

  • $counter % 2 — 카운터를 2로 나눈 나머지를 계산합니다. 짝수면 0(거짓), 홀수면 1(참)이 됩니다.
  • 나머지가 0일 때(짝수) → 콜론(:) 뒤의 표현식이 실행되어 배열에 "Even" 문자열이 추가됩니다.
  • 나머지가 1일 때(홀수) → 물음표(?) 뒤의 표현식이 실행되어 배열에 해당 숫자가 그대로 저장됩니다.

따라서 0번째, 2번째, 4번째 인덱스에는 "Even"이라는 텍스트가 표시되고, 1번째와 3번째 인덱스에는 실제 숫자 값이 그대로 출력됩니다.

참고: if 문을 사용한 대체 방법

삼항 연산자보다 가독성을 중시한다면 일반적인 if~else 문으로도 동일한 결과를 얻을 수 있습니다.

<?php
$arrayList = [];
for ($counter = 0; $counter < 5; $counter++) {
    if ($counter % 2 == 0) {
        $arrayList[] = "Even";
    } else {
        $arrayList[] = $counter;
    }
}
echo implode(" ", $arrayList); // Even 1 Even 3 Even
?>

두 방법 모두 결과는 같지만, 조건이 복잡해질수록 if~else 방식이 유지 보수에 더 유리합니다. 간단한 조건 처리라면 삼항 연산자가 코드를 더 간결하게 만들어 줍니다.