2 / 2 / 3
Регистрация: 03.10.2016
Сообщений: 107
1

Ошибка поиска ключа элемента массива

05.02.2021, 08:07. Показов 1437. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, начал изучать пхп, такой вопрос: пытаюсь сделать поиск в массиве по заданному значению, если значение найдено - нужно положить в переменную значение, которое находится в следующем элементе (i +1). Проблема на этапе поиска - почему-то не возвращается в переменную ключ элемента. Переменная hostname не пустая. Спасибо

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $text = fopen("Name.txt", "r");
         $array = null;
         if ($text) {
           while (($buffer = fgets($text)) !== false) {
                 $array[] = $buffer;
            }
            }
            fclose($text);
 
            print_r($array); //проверка что в массиве
            echo $hostname; // что в переменной
            $keys = array_search($hostname, $array); //поиск
            
            echo $keys; //что в ключе
            
            $name = $array[$keys + 1];
            echo $name;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2021, 08:07
Ответы с готовыми решениями:

Метод поиска элемента в списке по значению ключа
Может у кого завалялся простой пример с методом поиска в списке? using System; using...

Ошибка в функции поиска наибольшего элемента массива
Суть задачи: мне нужно найти максимальный элемент массива из первых N его элементов. Я не понимаю...

Получение ключа элемента массива по значению
Как зная значение элемента массива получить ключ этого элемента? Например: a = new Array('test1',...

Сравнение ключа элемента ассоциативного массива со значением из инпута
Здравствуйте. Есть ассоциативный массив - числовой словарь. Элементы массива случайным образом...

1
17 / 7 / 10
Регистрация: 25.05.2018
Сообщений: 46
05.02.2021, 13:52 2
Лучший ответ Сообщение было отмечено mrKrog как решение

Решение

Здравствуйте.

fgets читает строку со спецсимволами, такими как перевод строки.
Таким образом вам нужно обрезать спецсимволы с помощью trim.

PHP
1
2
3
4
while (($buffer = fgets($text)) !== false) 
{
                 $array[] = trim($buffer);
}
Функция array_search возвращает false, если значение не найдено.
Поставьте проверку на false,

PHP
1
2
3
4
5
if ($keys) {
    echo $keys; //что в ключе
    $name = $array[$keys + 1];
    echo $name;
}
1
05.02.2021, 13:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2021, 13:52
Помогаю со студенческими работами здесь

Составить программу поиска наибольшего по модулю элемента массива, а также индекса этого элемента
Помогите написать программу и составить блок схему. Дано массив А и натуральное число n. Составить...

В программе написать функции: вставки элемента, поиска максимального элемента, определения среднего арифметического элементов массива
В целочисленном массиве Х(N) после каждого четного числа вставить максимальный элемент массива....

Ошибка поиска последнего элемента
Помогите решить проблему, база не хочет брать последний элемент одного из полей. Вообще с такими...

Программа поиска наибольшего элемента массива
НАДО НАПИСАТЬ ПРОГРАММУ поиска наибольшего элемента массива. При выполнении программы выводится...

Поиска наибольшего по модулю элемента массива
Дан массив А и натуральное число n. Составить программу поиска наибольшего по модулю элемента...

Функция поиска максильманого элемента массива
Написать функцию, для поиска максимального элемента в указанной строке двумерного массива. Сдвинуть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru