Menu
Coddy logo textTech

Поиск ключей с 'array_search'

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 18 из 68.

В то время как 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
?>

Эта функция особенно полезна, когда вам нужно определить позицию или рейтинг элемента, например, чтобы узнать место игрока в таблице лидеров или найти индекс конкретного элемента для дальнейшей обработки.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Вы получите два входных значения: массив названий продуктов в формате 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;
?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком