Поиск ключей с '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
?>Эта функция особенно полезна, когда вам нужно определить позицию или рейтинг элемента, например, чтобы узнать место игрока в таблице лидеров или найти индекс конкретного элемента для дальнейшей обработки.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите два входных значения: массив названий продуктов в формате 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;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров