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

PHP에서 목록을 배열로 읽고 저장하는 방법

PHP에서 목록을 배열로 읽고 저장하기

공백으로 구분된 숫자 목록이 하나의 문자열로 주어졌을 때, 이를 개별 값으로 분리해 배열에 저장해야 하는 경우가 종종 있습니다. PHP에서는 for 루프를 사용해 직접 처리할 수 있으며, 내장 함수인 explode()를 활용하면 더욱 간단하게 해결할 수 있습니다.

방법 1: for 루프로 직접 파싱하기

문자열의 각 문자를 한 글자씩 검사하면서, 공백이 아닌 문자는 임시 변수에 이어 붙입니다. 공백을 만나면 그동안 모아둔 값을 배열에 저장하고 임시 변수를 초기화합니다. 마지막 값은 루프가 끝난 후 별도로 저장해야 한다는 점에 유의하세요.

<!DOCTYPE html>
<html>
<body>
<?php
$list = "10 20 30 40 50 60";
$arr = [];
$counter = 0;
$current = "";

for ($i = 0; $i < strlen($list); $i++) {
    if ($list[$i] !== " ") {
        $current .= $list[$i];
    } else {
        if ($current !== "") {
            $arr[$counter++] = $current;
            $current = "";
        }
    }
}
if ($current !== "") {
    $arr[$counter++] = $current;
}

foreach ($arr as $t) {
    echo $t, "<br>";
}
?>
</body>
</html>

출력 결과:

10
20
30
40
50
60

방법 2: explode() 함수 사용 (권장)

실무에서는 explode() 함수를 사용하는 것이 가장 간단하고 안전합니다. 지정한 구분자를 기준으로 문자열을 잘라 배열로 반환해 주기 때문에 코드가 훨씬 짧아지고 오류 발생 가능성도 줄어듭니다.

<?php
$list = "10 20 30 40 50 60";
$arr = explode(" ", $list);

print_r($arr);
?>

출력 결과:

Array
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
    [5] => 60
)

정리

  • for 루프 방식은 문자열 파싱의 동작 원리를 학습하는 데 유용합니다.
  • 실제 프로젝트에서는 explode(), preg_split() 등의 내장 함수를 사용하는 것이 코드 가독성과 안정성 면에서 더 좋습니다.