|
|
||||||
Убрать дубли в массиве17.03.2016, 14:18. Показов 5652. Ответов 39
Метки нет (Все метки)
Есть большой массив с большим числом элементов (более 500) благо что он "двумерный".
Структура массива:
Требуется "пере собрать" новый массив, в котором отсутствуют элементы массива, в которых значения (Value) по ключам (KEY) одинаковые. Ключей по которым нужно делать отбор больше одного, например по ("KEY1", "KEY4", "KEY6", "KEY9"), т.е. нужно "стандартное" решение, которое удаляет дубли из массива по заданным ключам. Не могу понять с чего начать решения задачи, в голове даже алгоритма нету ее решения.
0
|
||||||
| 17.03.2016, 14:18 | |
|
Ответы с готовыми решениями:
39
Убрать дубли из многомерного массива Вывести дубли на экран в одномерном массиве. Как? Убрать дубли в запросе |
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
||||||
| 17.03.2016, 14:36 | ||||||
|
Если я правильно понял задачу, то нужно 3 массива.
Исходный со всеми данными. Массив с ключами ("KEY1", "KEY4", "KEY6", "KEY9") - содержащий те строки, которые надо удалить. Выходной массив - пока пустой. Далее нужно сравнить каждую запись исходного массива с каждой записью массива с ключами. Если не совпало - вставить эту запись в выходной новый массив. Сравнение производить стандартно. Это 2 цикла (цикл в цикле). Добавлено через 5 минут Примерно так Псевдокод (ближе к паскаль)
0
|
||||||
|
|
|||||||
| 18.03.2016, 05:26 [ТС] | |||||||
|
Добавлено через 14 часов 44 минуты Не смог додумать как реализовать такую запись на РНР:
0
|
|||||||
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||||||
| 18.03.2016, 09:07 | |||||||
|
Из интернета - уже php код. Обход двумерного массива - есть не что иное, как последовательный перебор элементов массива. А в листинге ниже представлен код который ещё и выводит на монитор содержимое. Листинг № 3 - Обход двумерного массива
0
|
|||||||
|
|
|||||||
| 18.03.2016, 09:41 [ТС] | |||||||
|
[$i] является числом от 0 до i (0, 1, 2, 3, 4, ..., i) [$q] тоже число от 0 до q (0, 1, 2, 3, 4, ..., q) Но у нас тут: [$i] является числом от 0 до i (0, 1, 2, 3, 4, ..., i) [$q] является строкой ('KEY1', 'KEY2', 'KEY3', 'KEY4', 'KEY5', 'KEY6', ...,'KEYq' ) Добавлено через 24 минуты Начало положено, пока сделал "отсев" по одному ключу (первый ключ 'KEY1') :
1. Переложить aTempArray в aArray и запустить это в несколько циклов, как это сделать пока не придумал. Но чет мне кажется, что с таким подходом я далеко не уеду
0
|
|||||||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 18.03.2016, 10:15 | |
|
я не понял - дубли надо среди KEYX искать или среди valueX ?
0
|
|
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||
| 18.03.2016, 10:22 | |||
|
А как насчет 6 вложенных циклов и массивов размерностью скажем 30? Есть и такие задачи. И это не сложно. Рекомендую лучше изучить работу с массивами. Ваша задача является типовой. Сомневаюсь, что есть другой разумный способ решения т.к. такие вложенные массивы используются почти везде при выборе/сортировке и т.д. По вашему коду вижу, что вы плохо понимаете суть. Вот это вообще бесмысленно, можно сказать даже не зная php...
0
|
|||
|
|
|||||||
| 18.03.2016, 10:26 [ТС] | |||||||
И все элементы [0], [1], [2] массива считаются дублями по ключам: KEY1, KEY4, KEY6
0
|
|||||||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||||||
| 18.03.2016, 10:29 | ||||||
|
а если бы например было так:
0
|
||||||
|
|
|||
| 18.03.2016, 10:37 [ТС] | |||
|
Добавлено через 1 минуту Добавлено через 2 минуты полудух, Грубо говоря, в KEY1 хранятся данные о породе кошек, в KEY5 хранятся их возраст, я думаю навряд ли эти данные пересекутся когда либо.
0
|
|||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||
| 18.03.2016, 10:44 | ||
|
$arr[0] с $arr[1],$arr[2],$arr[N] $arr[1] с $arr[2],$arr[3],$arr[N] итд
0
|
||
|
|
||||||||||||||||||||||
| 18.03.2016, 10:54 [ТС] | ||||||||||||||||||||||
|
1. входящий массив
В идеале должно получиться следующее:
0
|
||||||||||||||||||||||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||
| 18.03.2016, 11:01 | ||
|
что вы воду мутите, вот ваше ТЗ:
в 1м сообщении тоже ни слова про такое условие этот $aKeyArray вы выдумали позже, когда пытались решить задачу через какие-то грабли я вам дал алгоритм, как это делается на самом деле
0
|
||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||||||
| 18.03.2016, 11:53 | ||||||
1
|
||||||
|
|
|
| 18.03.2016, 12:43 [ТС] | |
|
полудух, Меня всегда пугали такие записи (&$n), ну не понимаю я ссылок, а потому разобраться в коде будет сложно, особенно если потребуется сделать в нем изменения, но все равно СПС, будем разбираться
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 18.03.2016, 12:55 | |
|
в гардеробе когда оставляешь одежду дают номерок
номерок это ссылка на одежду, вместо самой одежды
0
|
|
|
|
|||||||
| 18.03.2016, 13:08 [ТС] | |||||||
![]() Код работает не правильно, выводит первый элемент массива со всеми ключами, а затем у остальных элементов отсутствуют пары "Ключ => Значение", т.е. если у первого элемента все девять пар присутствуют, то у остальных то одна, то две, то 4 этих пар. Добавлено через 8 минут Вот мой вариант, но он почему то еще больше дублей плодит, чем убирает ![]()
0
|
|||||||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 18.03.2016, 13:09 | |
|
а вы чего хотите, удалять И исходник, И дубль?
тогда это уже не дубль, если исходник удалить код оставляет в массиве 1 единственную запись из множества таких же если она раньше присутствовала в нескольких массивах, то будет только в первом найденном это и есть чистка дублей, а вы о чём?
0
|
|
|
|
||||||
| 18.03.2016, 13:40 [ТС] | ||||||
|
полудух, Видать я плохо ставлю задачу, пробую еще раз.
В массиве $aArray есть элементы в виде массива:
"Value1", "unique1", "unique2", "Value2", "unique3", "Value3", "unique4", "unique5", "Value4" одинаковые по соответствующим ключам: "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" Т.е. Если ( ($aArray[0]['KEY1'] == $aArray[N]['KEY1']) && ($aArray[0]['KEY4'] == $aArray[N]['KEY4']) && ($aArray[0]['KEY6'] == $aArray[N]['KEY6']) && ($aArray[0]['KEY9'] == $aArray[N]['KEY9']) ) считается что $aArray[0] есть дубль $aArray[N] и в новый массив нужно добавить один из этих элементов, т.е. один как бы удалить.
0
|
||||||
| 18.03.2016, 13:40 | |
|
Помогаю со студенческими работами здесь
20
Убрать дубли из готового отчета Как хитро убрать дубли Убрать дубли избранного материала Как убрать дубли страниц на joomla 3 + K2 Появляются дубли сайта, как их убрать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|