PHP 다차원 배열은 요소가 배열인 배열이며, 단계마다 대괄호 하나로 읽습니다: $grid[1][2] 또는 $users[0]['name']. 중첩 배열을 만들고, 깊은 값을 읽고 바꾸고, 중첩 foreach로 반복하고, HTML 표를 만들고, 열을 뽑고, 행을 정렬하는 방법을 알아봅니다.
▶이 페이지에는 실행 가능한 에디터가 있습니다 - 편집하고 실행하면 결과를 바로 볼 수 있습니다.
count($players, COUNT_RECURSIVE)는 행 3개와 그 안의 필드 6개를 세므로 9를 출력합니다.
흔한 실수: 없을 수도 있는 깊은 키 읽기
cache 키가 없을 때 $config['cache']['ttl']을 읽으면 Warning: Undefined array key "cache"가 출력되고, 다음 단계에서 Warning: Trying to access array offset on null이 이어집니다. ?? 연산자는 체인 전체를 한 번에 확인하고 경고를 내지 않으므로, 선택적인 중첩 값을 읽는 안전한 방법입니다.
<?php
$config = ['db' => ['host' => 'localhost']];
$ttl = $config['cache']['ttl'] ?? 60; // missing at the first level
$port = $config['db']['port'] ?? 3306; // missing at the second level
$host = $config['db']['host'] ?? '127.0.0.1'; // present
echo "$ttl $port $host\n";
var_dump(isset($config['db']['host']));
자주 묻는 질문
PHP 다차원 배열에서 값에 접근하려면 어떻게 하나요?
단계마다 대괄호 한 쌍을 붙이세요. $matrix[1][0]은 1행 0열이고, $users[0]['email']은 첫 번째 사용자의 이메일입니다. 각 대괄호는 앞의 대괄호가 돌려준 배열에서 읽습니다.
PHP에서 다차원 배열을 반복하려면 어떻게 하나요?
단계마다 foreach를 하나씩 중첩하세요: foreach ($rows as $row) { foreach ($row as $key => $value) { ... } }. 레코드 배열이라면 보통 반복문 하나로 충분하고 필드를 이름으로 읽습니다: $row['name'].
다차원 배열에 요소를 추가하려면 어떻게 하나요?
행 전체는 $rows[] = ['name' => 'Linus', 'age' => 54];로 덧붙이고, 중첩 배열 안에는 $groups['admins'][] = 'Grace';로 덧붙이세요. 키가 아직 없으면 PHP가 안쪽 배열을 만듭니다.
PHP에서 0으로 채운 2차원 배열을 만들려면 어떻게 하나요?
array_fill() 호출 두 개를 중첩하세요: $grid = array_fill(0, 3, array_fill(0, 4, 0));는 0이 4개씩 든 행 3개를 만듭니다. 각 행은 별도의 복사본이므로 $grid[0][0] = 5;는 첫 번째 행만 바꿉니다.