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 방식이 유지 보수에 더 유리합니다. 간단한 조건 처리라면 삼항 연산자가 코드를 더 간결하게 만들어 줍니다.