키로 값에 접근하기
Coddy PHP 여정의 기초 섹션에 포함된 레슨. 71개 중 42번째.
이제 연관 배열이 무엇인지 이해했으니, 연관 배열에서 값을 검색하는 방법을 알아보겠습니다. 인덱스 배열이 숫자 위치를 사용하는 것처럼, 연관 배열은 대괄호 안에 keys를 사용합니다.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>구문은 $array["key"]입니다. 대괄호 안에 키를 문자열로 넣으면 PHP가 associated 값을 반환합니다. 이름이 인덱스 0에 있다는 것을 기억하는 것보다 훨씬 읽기 쉽습니다.
검색한 값을 나중에 사용하기 위해 variable에 저장할 수도 있습니다:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>키는 대소문자를 포함하여 정확히 일치해야 합니다. "name" 대신 "Name"을 사용하면 PHP는 이를 서로 다른 키로 취급하므로 오류가 발생합니다.
때때로 데이터가 PHP 배열 리터럴이 아니라 JSON 문자열로 도착합니다. JSON(JavaScript Object Notation)은 구조화된 데이터를 나타내는 일반적인 텍스트 형식입니다. 예:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';PHP의 내장 json_decode() 함수는 JSON 문자열을 PHP 값으로 변환합니다. 연관 배열을 가져오려면 두 번째 인수로 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"]를 사용합니다.
챌린지
쉬움책의 정보를 나타내는 JSON 객체가 포함된 입력 한 줄을 읽습니다(예: {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
그런 다음 입력을 두 개 더 읽습니다:
- 접근할 첫 번째 키를 나타내는 문자열
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에 저장된 값 출력
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 PHP 컴파일러