Содержание
Задача
Дан массив целых чисел. Проверить, есть ли в нем одинаковые элементы.
Решение
Чтобы проверить каждый элемент массива на уникальность, надо сравнить его с остальными элементами. Так первый элемент следует сравнить со вторым, третьим и т. д. до конца. После этого второй элемент — с третьим, четвертым и т. д. Второй элемент с первым сравнивать не надо, т.к. они уже сравнивались при оценке уникальности первого элемента. Когда очередь дойдет до предпоследнего элемента, то он сравнивается только с последним. Последний же уже сравнивать не надо. Таким образом, количество итераций внешнего цикла на 1 меньше, чем элементов в массиве. Счетчик этого цикла — это номер элемента, который сравнивается с элементами стоящими после него.
Внутренний цикл перебирает элементы от следующего за исследуемым до последнего. На данном отрезке элементы массива сравниваются с исследуемым элементом. Если какой-то элемент окажется равен исследуемому, то значит, что в массиве есть одинаковые значения. Следует вывести соответствующее сообщение и завершить программу, т.к. дальше уже можно не проверять.
Если программа в процессе выполнения циклов не завершилась, то значит, одинаковых элементов найдено не было. Следует вывести сообщение, что все элементы массива разные.
N — размер массива
arrayOfElement — сам массив
arrayOfDoubleElement — массив для сохранения совпавших элементов
int currentElement = 0; //Это счетчик показывающий сколько элементов было найдено и за счет
//него происходит запись элемента в нужную "ячейку" массива
Нужно при переборе массива выполнить условие в зависимости от того есть элемент в массиве или нет.
2 ответа 2
Здесь все зависит от того, какого объема этот массив, и что нужно делать с элементами, которые повторяются.
Я бы предложил сделать так: пройти все элементы массива и построить массив, где ключами будут значения, значения будут — ключи первоначального массива:
Собственно все, теперь у вас есть массив $arraySpecial в котором содержится вся статистика по вашему изначальному массиву.
для начала можете использовать расширенную конструкцию foreach:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками php массивы или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.12.20.35703