Menu
Coddy logo textTech

2차원 연관 배열

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 31번째.

지금까지 숫자 인덱스를 사용하는 2차원 배열을 다루어 왔지만, 메인 레벨과 중첩된 배열 모두에서 연관 배열을 사용하여 더 구조화된 데이터를 생성할 수도 있습니다. 이 방식은 숫자 대신 문자열 키를 사용하므로 데이터를 훨씬 더 설명적이고 이해하기 쉽게 만들어 줍니다.

각 요소가 의미 있는 문자열 키를 갖는 2차원 연관 배열을 생성하는 방법은 다음과 같습니다:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ],
    "charlie" => [
        "name" => "Charlie Brown",
        "grade" => 95
    ]
];
?>

또한 메인 배열에는 숫자 인덱스를 사용하고 내부에는 연관 배열을 유지하는 방식으로 접근 방식을 혼합하여 사용할 수 있습니다:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

이 구조는 사용자 프로필, 제품 카탈로그 또는 각 항목에 대해 여러 관련 속성을 저장해야 하는 모든 시나리오와 같이 복잡한 데이터를 구성하는 데 매우 강력합니다. 문자열 키는 코드를 자체 문서화(self-documenting)하게 만들며, 숫자 위치를 기억하는 것보다 유지 관리가 훨씬 쉽습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

challenge icon

챌린지

쉬움

하나의 입력을 받게 됩니다: JSON 형식의 제품 인벤토리를 나타내는 2차원 연관 배열입니다. 각 제품은 고유한 제품 ID를 키로 가지며, 값은 제품의 "name""price"를 포함하는 연관 배열입니다. 입력을 읽고, JSON 문자열을 2차원 연관 배열로 변환한 다음, 모든 제품을 순회하며 각 제품의 정보를 ID: [product_id] - Name: [name] - Price: $[price] 형식으로 출력하세요.

각 제품은 별도의 줄에 출력되어야 합니다.

입력 형식: 제품 인벤토리를 나타내는 JSON 객체가 포함된 한 줄 (예시: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})

예상 출력: 각 제품이 ID: [product_id] - Name: [name] - Price: $[price] 형식으로 별도의 줄에 출력됩니다.

치트 시트

메인 레벨과 중첩된 배열 모두에서 문자열 키를 사용하여 2차원 연관 배열을 생성할 수 있습니다:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ]
];
?>

또한 메인 배열에는 숫자 인덱스를 사용하고 내부에는 연관 배열을 사용하는 방식을 혼합하여 사용할 수도 있습니다:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

문자열 키를 사용하면 숫자 위치를 사용하는 것보다 데이터를 더 자명하게(self-documenting) 만들고 유지 관리하기 쉽게 해줍니다.

직접 해보기

<?php
// JSON 입력을 읽습니다
$input = fgets(STDIN);

// JSON을 연관 배열로 변환합니다
$inventory = (array)json_decode($input, true);

// TODO: 아래에 인벤토리를 반복하고 각 제품을 출력하는 코드를 작성하세요


?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨