0Pricing
PHP Academy · 강의

다차원 배열

배열로 이루어진 배열을 구성하고 탐색합니다.

다차원 배열은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

다차원 배열

다차원 배열은 각 요소가 그 자체로 배열인 배열입니다. 데이터베이스 결과나 설정 트리처럼 구조화된 데이터에 자주 사용됩니다.

2차원 배열 만들기

2차원 배열을 만들고 접근합니다:

<?php
$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
];

echo $matrix[1][2]; // 6 (row 1, col 2)
$matrix[0][0] = 99;
echo $matrix[0][0]; // 99

연관 배열의 배열

데이터베이스 결과 집합은 연관 배열의 배열인 경우가 많습니다:

<?php
$users = [
    ['id' => 1, 'name' => 'Alice', 'role' => 'admin'],
    ['id' => 2, 'name' => 'Bob',   'role' => 'user'],
    ['id' => 3, 'name' => 'Carol', 'role' => 'user'],
];

echo $users[0]['name'];  // Alice
echo count($users);      // 3

2차원 배열 순회

중첩된 foreach를 사용하여 모든 행과 열을 순회합니다:

<?php
$products = [
    ['name' => 'Widget', 'price' => 9.99],
    ['name' => 'Gadget', 'price' => 24.99],
];

foreach ($products as $product) {
    echo $product['name'] . ': $' . $product['price'] . PHP_EOL;
}

중첩 키에 안전하게 접근하기

널 병합 연산자를 사용하여 존재하지 않을 수 있는 중첩 키에 안전하게 접근합니다:

<?php
$config = [
    'database' => ['host' => 'localhost', 'port' => 3306],
    'cache'    => ['driver' => 'redis'],
];

$port     = $config['database']['port'] ?? 3306;
$password = $config['database']['password'] ?? '';

echo $port;     // 3306
echo $password; // (empty)

중첩 배열에 추가하기

다차원 배열 안쪽 깊은 곳에 요소를 추가합니다:

<?php
$app = [];
$app['settings']['theme'] = 'dark';
$app['settings']['lang']  = 'en';

$app['users'][] = ['name' => 'Alice'];
$app['users'][] = ['name' => 'Bob'];

echo count($app['users']);       // 2
echo $app['settings']['theme'];  // dark

array_column()

array_column()은 2차원 배열에서 하나의 열을 추출합니다:

<?php
$users = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Carol'],
];

$names = array_column($users, 'name');
print_r($names); // ['Alice', 'Bob', 'Carol']

// Re-index by id
$byId = array_column($users, null, 'id');
echo $byId[2]['name']; // Bob

2차원 배열 정렬

usort()를 사용하여 필드 값으로 행을 정렬합니다:

<?php
$products = [
    ['name' => 'C Item', 'price' => 30],
    ['name' => 'A Item', 'price' => 10],
    ['name' => 'B Item', 'price' => 20],
];

usort($products, fn($a, $b) => $a['price'] <=> $b['price']);

foreach ($products as $p) {
    echo $p['name'] . PHP_EOL; // A Item, B Item, C Item
}

array_walk_recursive를 사용한 재귀 연산

array_walk_recursive()를 사용하여 중첩 배열의 모든 말단에 콜백을 적용합니다:

<?php
$data = ['a' => 'hello', 'b' => ['c' => 'world', 'd' => 'php']];

array_walk_recursive($data, function(&$val) {
    $val = strtoupper($val);
});

print_r($data);
// ['a'=>'HELLO', 'b'=>['c'=>'WORLD','d'=>'PHP']]

JSON과 다차원 배열

PHP의 다차원 배열은 JSON 객체 및 배열에 직접 대응됩니다:

<?php
$data = [
    'user'    => ['id' => 1, 'name' => 'Alice'],
    'scores'  => [95, 87, 92],
    'active'  => true,
];

$json = json_encode($data, JSON_PRETTY_PRINT);
echo $json;

$decoded = json_decode($json, true); // true = assoc array
echo $decoded['user']['name']; // Alice

중첩 배열에서 array_merge와 array_replace 비교

array_merge는 재귀적으로 작동하지 않으므로 중첩 배열을 올바르게 병합하려면 array_replace_recursive를 사용합니다:

<?php
$defaults = ['db' => ['host' => 'localhost', 'port' => 3306]];
$custom   = ['db' => ['host' => 'production.server.com']];

$config = array_replace_recursive($defaults, $custom);
echo $config['db']['host'];  // production.server.com
echo $config['db']['port'];  // 3306 — preserved from defaults

빠른 확인

2차원 배열에서 값이 있는 하나의 열을 추출하는 함수는 무엇입니까?

복습: 다차원 배열

주요 내용:

  • 원하는 깊이까지 배열을 중첩할 수 있습니다
  • ??를 사용하여 누락된 중첩 키에 안전하게 접근합니다
  • array_column()은 열을 추출하거나 키를 기준으로 다시 색인합니다
  • 비교 함수와 함께 사용하는 usort()는 모든 필드로 정렬합니다
  • 깊은 구조의 변환에는 array_walk_recursive()를 사용합니다
  • 깊은 구조의 병합에는 array_replace_recursive()를 사용합니다

자주 묻는 질문

“다차원 배열” 강의는 무료인가요?

네 — “다차원 배열” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“다차원 배열”에서 뭘 배우나요?

배열로 이루어진 배열을 구성하고 탐색합니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

PHP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“다차원 배열” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 인덱스 배열과 연관 배열
  2. 다차원 배열
  3. 배열 정렬과 검색
  4. 배열 변환 함수
← PHP Academy(으)로 돌아가기