'array_search'로 키 찾기
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 18번째.
in_array()가 배열에 값이 존재하는지 여부를 알려주는 반면, 때로는 그 값이 정확히 어디에 위치해 있는지 알아야 할 때가 있습니다. array_search() 함수는 배열에서 특정 값을 찾아 그에 해당하는 키 또는 인덱스를 반환합니다.
작동 방식은 다음과 같습니다:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // 출력: 2
?>이 함수는 두 개의 매개변수를 받습니다: 검색할 값과 검색 대상 배열입니다. 값을 찾으면, array_search()는 키를 반환합니다 (인덱스 배열의 경우, 이는 0부터 시작하는 숫자 위치입니다).
하지만 반환되는 값에는 중요한 차이점이 있습니다. 값을 찾으면 키를 얻게 됩니다. 값을 찾지 못하면 함수는 false를 반환합니다:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // 반환: 2
$notFound = array_search(100, $scores); // 반환: false
?>이 함수는 리더보드에서 플레이어의 순위를 찾거나 추가 처리를 위해 특정 요소의 인덱스를 찾는 것과 같이, 항목의 위치나 순위를 결정해야 할 때 특히 유용합니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
챌린지
쉬움두 개의 입력을 받게 됩니다: JSON 형식의 제품 이름 배열과 검색할 제품 이름입니다. 두 입력을 모두 읽고, JSON 문자열을 배열로 변환한 뒤, array_search()를 사용하여 배열에서 해당 제품의 위치를 찾아 결과를 출력하세요. 제품을 찾은 경우 해당 인덱스 위치를 출력하십시오. 제품을 찾지 못한 경우, "Product not found"를 출력하십시오.
입력 형식: 두 줄 - 첫 번째 줄은 JSON 배열(예: ["laptop","mouse","keyboard","monitor"]), 두 번째 줄은 검색할 제품 이름을 포함합니다.
예상 출력: 제품의 숫자 인덱스 위치(0부터 시작) 또는 제품이 배열에 존재하지 않는 경우 "Product not found"라는 텍스트를 출력합니다.
치트 시트
array_search() 함수는 배열에서 특정 값을 찾아 해당 키 또는 인덱스를 반환합니다:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // 출력: 2
?>이 함수는 두 개의 매개변수를 가집니다: 검색할 값과 검색 대상 배열입니다. 값을 찾으면 키를 반환하고, 찾지 못하면 false를 반환합니다:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // 반환: 2
$notFound = array_search(100, $scores); // 반환: false
?>직접 해보기
<?php
// JSON 배열 입력을 읽습니다.
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// 검색할 제품 이름을 읽습니다.
$searchProduct = trim(fgets(STDIN));
// TODO: 아래에 코드를 작성하세요.
// array_search()를 사용하여 제품 위치를 찾으세요.
// 결과를 출력합니다.
echo $result;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.