Accessing Values by Key
Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 42번째.
연관 배열이 무엇인지 이해했으므로, 이제 배열에서 값을 가져오는 방법을 배워보겠습니다. 인덱스 배열이 숫자 위치를 사용하는 것처럼, 연관 배열은 대괄호 안에 키(keys)를 사용합니다.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>구문은 $array["key"]입니다. 대괄호 안에 키를 문자열로 넣으면 PHP가 연관된 값을 반환합니다. 이는 이름이 인덱스 0에 있다는 것을 기억하는 것보다 훨씬 가독성이 좋습니다.
가져온 값을 나중에 사용하기 위해 변수에 저장할 수도 있습니다:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>키는 대소문자를 포함하여 정확히 일치해야 합니다. PHP는 이들을 서로 다른 키로 취급하므로 "name" 대신 "Name"을 사용하면 오류가 발생합니다.
때때로 데이터는 PHP 배열 리터럴이 아닌 JSON 문자열로 전달되기도 합니다. JSON(JavaScript Object Notation)은 구조화된 데이터를 표현하기 위한 일반적인 텍스트 형식입니다. 예를 들어:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';PHP의 내장 함수인 json_decode()는 JSON 문자열을 PHP 값으로 변환합니다. 연관 배열(associative array)을 얻으려면 두 번째 인자로 true를 전달하세요:
<?php
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';
$book = json_decode($json, true);
echo $book["title"]; // Dune
echo $book["author"]; // Frank Herbert
echo $book["year"]; // 1965
?>json_decode($json, true)를 호출한 후, 결과는 일반적인 연관 배열이며 다른 연관 배열과 똑같은 방식인 $array["key"]를 사용하여 그 값에 접근할 수 있습니다.
챌린지
쉬움책의 정보(예: {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925})를 나타내는 JSON 객체가 포함된 입력 한 줄을 읽습니다.
그런 다음 두 개의 입력을 더 읽습니다:
- 액세스할 첫 번째 키를 나타내는 문자열
key1 - 액세스할 두 번째 키를 나타내는 문자열
key2
JSON 문자열을 연관 배열로 변환하려면, 두 번째 인수로 true를 사용하는 내장 함수 json_decode()를 사용하세요:
$array = json_decode($jsonString, true);
두 번째 인수 true는 PHP가 객체 대신 연관 배열을 반환하도록 지시합니다. 디코딩이 완료되면 $array["title"]과 같이 연관 배열처럼 키를 통해 값에 액세스할 수 있습니다.
JSON 입력으로부터 연관 배열을 생성한 후, 다음을 수행하세요:
key1과 연관된 값을 액세스하여 출력합니다.key2와 연관된 값을$info라는 변수에 저장합니다.$info에 저장된 값을 출력합니다.
각 결과는 별도의 줄에 출력하십시오.
예시:
입력이 {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title, 그리고 author인 경우, 출력은 다음과 같아야 합니다:
The Great Gatsby
F. Scott Fitzgerald입력이 {"name": "Laptop", "brand": "TechCo", "price": 999}, brand, 그리고 price인 경우, 출력은 다음과 같아야 합니다:
TechCo
999직접 해보기
<?php
// JSON 입력을 읽습니다
$jsonInput = trim(fgets(STDIN));
// 두 개의 키를 읽습니다
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: 아래에 코드를 작성하세요
// 1. `json_decode`를 사용하여 JSON 입력으로부터 연관 배열을 생성합니다
// 2. `$key1`과 연관된 값에 접근하여 출력합니다
// 3. `$key2`와 연관된 값을 `$info`라는 변수에 저장합니다
// 4. `$info`에 저장된 값을 출력합니다
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators