Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1

Убрать дубли в массиве

17.03.2016, 14:18. Показов 5652. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть большой массив с большим числом элементов (более 500) благо что он "двумерный".
Структура массива:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$aArray = array(
    0 => array(
        "KEY1" => "Value0_1",
        "KEY2" => "Value0_2",
        "KEY3" => "Value0_3",
        "KEY4" => "Value0_4",
        "KEY5" => "Value0_5",
        "KEY6" => "Value0_6",
        "KEY7" => "Value0_7",
        "KEY8" => "Value0_8",
        "KEY9" => "Value0_9",       
    ),
    1 => array(
        "KEY1" => "Value1_1",
        "KEY2" => "Value1_2",
        "KEY3" => "Value1_3",
        "KEY4" => "Value1_4",
        "KEY5" => "Value1_5",
        "KEY6" => "Value1_6",
        "KEY7" => "Value1_7",
        "KEY8" => "Value1_8",
        "KEY9" => "Value1_9",
    ),
    
    ...
    
    n-1 => array(
        "KEY1" => "Valuen-1_1",
        "KEY2" => "Valuen-1_2",
        "KEY3" => "Valuen-1_3",
        "KEY4" => "Valuen-1_4",
        "KEY5" => "Valuen-1_5",
        "KEY6" => "Valuen-1_6",
        "KEY7" => "Valuen-1_7",
        "KEY8" => "Valuen-1_8",
        "KEY9" => "Valuen-1_9",
   ),
    n => array(
        "KEY1" => "Valuen_1",
        "KEY2" => "Valuen_2",
        "KEY3" => "Valuen_3",
        "KEY4" => "Valuen_4",
        "KEY5" => "Valuen_5",
        "KEY6" => "Valuen_6",
        "KEY7" => "Valuen_7",
        "KEY8" => "Valuen_8",
        "KEY9" => "Valuen_9",
   ),
);
Число элементов в массиве (n), ключи массива неизменны ("KEY1"), только значения ("Valuen_1").
Требуется "пере собрать" новый массив, в котором отсутствуют элементы массива, в которых значения (Value) по ключам (KEY) одинаковые. Ключей по которым нужно делать отбор больше одного, например по ("KEY1", "KEY4", "KEY6", "KEY9"), т.е. нужно "стандартное" решение, которое удаляет дубли из массива по заданным ключам.
Не могу понять с чего начать решения задачи, в голове даже алгоритма нету ее решения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2016, 14:18
Ответы с готовыми решениями:

Убрать дубли из многомерного массива
Всем доброго времени уважаемые форумчане! Бьюсь весь день не могу понять, как убрать дубли из массива, к примеру есть массив. $myArray...

Вывести дубли на экран в одномерном массиве. Как?
вот , бьюсь, бьюсь, устала. все-таки решила попросить помощи. Надо вывести на экран дубли в одномерном массиве, созданном рендомом. ...

Убрать дубли в запросе
Подскажите как убрать дубли в запросе. Запрос по нескольку раз дублирует одни и те же записи таблицы ( в частности в поле , и.т.д.) .

39
 Аватар для useruser
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
17.03.2016, 14:36
Если я правильно понял задачу, то нужно 3 массива.
Исходный со всеми данными.
Массив с ключами ("KEY1", "KEY4", "KEY6", "KEY9") - содержащий те строки, которые надо удалить.
Выходной массив - пока пустой.

Далее нужно сравнить каждую запись исходного массива с каждой записью массива с ключами. Если не совпало - вставить эту запись в выходной новый массив.

Сравнение производить стандартно. Это 2 цикла (цикл в цикле).

Добавлено через 5 минут
Примерно так
Псевдокод (ближе к паскаль)
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
count:=0;
for i:=1 to MASSIV1.LENGHT do
begin
for j:=1 to MASSIV2.LENGHT do
begin
if (MASSIV1[i,1]<>MASSIV2[j,1] and MASSIV1[i,2]<>MASSIV2[j,2]) then
begin
count:=count+1;
MASSIV3[count,1]=MASSIV1[i,1];
MASSIV3[count,2]=MASSIV1[i,2];
end;
 
end;
end;
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 05:26  [ТС]
Цитата Сообщение от useruser Посмотреть сообщение
Примерно так
Псевдокод (ближе к паскаль)
Логика более менее понятна, надо попробовать реализовать.

Добавлено через 14 часов 44 минуты
Не смог додумать как реализовать такую запись на РНР:
Pascal
1
if (MASSIV1[i,1]<>MASSIV2[j,1] and MASSIV1[i,2]<>MASSIV2[j,2]) then
т.к. запись MASSIV1[i,1] не может быть такой, а только такой MASSIV1[i,sKey], потому что исходный массив это "массив в массиве".
0
 Аватар для useruser
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
18.03.2016, 09:07
Цитата Сообщение от Gcom Посмотреть сообщение
т.к. запись MASSIV1[i,1] не может быть такой, а только такой MASSIV1[i,sKey], потому что исходный массив это "массив в массиве".
Не понял в чем сложность. Многомерность массива не влияет на алгоритм.

Из интернета - уже php код.


Обход двумерного массива - есть не что иное, как последовательный перебор элементов массива. А в листинге ниже представлен код который ещё и выводит на монитор содержимое.
Листинг № 3 - Обход двумерного массива
PHP
1
2
3
4
5
6
7
8
9
10
11
// обход двумерного массива 
for($i=0; $i < count($THN); $i++)   
{  
    
 
   for($q=0; $q < count($THN[$i]); $q++)  
   {  
     echo  " » ".$THN[$i][$q];     
   }  
   echo "<br>";  
}
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 09:41  [ТС]
Цитата Сообщение от useruser Посмотреть сообщение
Листинг № 3 - Обход двумерного массива
Да это так, но если:
[$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') :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
$aKeyArray  = array ('KEY1', 'KEY4', 'KEY6', 'KEY9'); # Массив с ключами ("KEY1", "KEY4", "KEY6", "KEY9")
$aTempArray = array (); # Выходной массив - пока пустой.
        
$x = count ($aKeyArray) - 1;
$m = count ($aKeyArray) - 1 - $x;
        
$aTempArray[] = array (
    'KEY1' => $aArray[0]['KEY1'],   
    'KEY1' => $aArray[0]['KEY1'],  
    'KEY1' => $aArray[0]['KEY1'],  
    'KEY1' => $aArray[0]['KEY1'],  
    'KEY1' => $aArray[0]['KEY1'],  
    'KEY1' => $aArray[0]['KEY1'], 
    'KEY1' => $aArray[0]['KEY1'],  
    'KEY1' => $aArray[0]['KEY1'], 
    'KEY1' => $aArray[0]['KEY1'],
    );
        
for ($n = 0; $n < count ($aArray) - 1; $n++) {
            
    if ($aArray[$n][$aKeyArray[$m]] !== $aArray[$n+1][$aKeyArray[$m]]) {
                
        $aTempArray[] = array (
            'KEY1' => $aArray[$n+1]['KEY1'],   
            'KEY1' => $aArray[$n+1]['KEY1'],  
            'KEY1' => $aArray[$n+1]['KEY1'],  
            'KEY1' => $aArray[$n+1]['KEY1'],  
            'KEY1' => $aArray[$n+1]['KEY1'],  
            'KEY1' => $aArray[$n+1]['KEY1'], 
            'KEY1' => $aArray[$n+1]['KEY1'],  
            'KEY1' => $aArray[$n+1]['KEY1'], 
            'KEY1' => $aArray[$n+1]['KEY1'],
            );              
                
    };
            
};
print '<pre>';
print_r ($aTempArray);
print '</pre>';
?>
Теперь остается:
1. Переложить aTempArray в aArray и запустить это в несколько циклов, как это сделать пока не придумал.

Но чет мне кажется, что с таким подходом я далеко не уеду
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 10:15
я не понял - дубли надо среди KEYX искать или среди valueX ?
0
 Аватар для useruser
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
18.03.2016, 10:22
Цитата Сообщение от Gcom Посмотреть сообщение
Но чет мне кажется, что с таким подходом я далеко не уеду
Мда. Задача примитивная. Мне просто лень писать. Сегодня я ленивый.
А как насчет 6 вложенных циклов и массивов размерностью скажем 30? Есть и такие задачи. И это не сложно.

Рекомендую лучше изучить работу с массивами. Ваша задача является типовой.
Сомневаюсь, что есть другой разумный способ решения т.к. такие вложенные массивы используются почти везде при выборе/сортировке и т.д.

По вашему коду вижу, что вы плохо понимаете суть.
Вот это вообще бесмысленно, можно сказать даже не зная php...
Цитата Сообщение от Gcom Посмотреть сообщение
'KEY1' => $aArray[$n+1]['KEY1'], 'KEY1' => $aArray[$n+1]['KEY1'],
И вообще код странный. Где цикл в цикле?
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 10:26  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
я не понял - дубли надо среди KEYX искать или среди valueX ?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$aArray = array(
    0 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique1",
        "KEY3" => "unique2",
        "KEY4" => "Value2",
        "KEY5" => "unique3",
        "KEY6" => "Value3",
        "KEY7" => "unique4",
        "KEY8" => "unique5",
        "KEY9" => "Value4",       
    ),
    1 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique6",
        "KEY3" => "unique7",
        "KEY4" => "Value2",
        "KEY5" => "unique8",
        "KEY6" => "Value3",
        "KEY7" => "unique9",
        "KEY8" => "unique10",
        "KEY9" => "Value4",
    ),
    2 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique11",
        "KEY3" => "unique12",
        "KEY4" => "Value2",
        "KEY5" => "unique13",
        "KEY6" => "Value3",
        "KEY7" => "unique14",
        "KEY8" => "unique15",
        "KEY9" => "unique16",
    ),
);
Элемент [0] массива считается дублем с элементом [1] массива по ключам: KEY1, KEY4, KEY6, KEY9
И все элементы [0], [1], [2] массива считаются дублями по ключам: KEY1, KEY4, KEY6
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 10:29
а если бы например было так:
PHP
1
2
$arr[0]{'KEY1'} = 'value1';
$arr[1]{'KEY5'} = 'value1';
т.е. кеи разные, но содержимое одно
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 10:37  [ТС]
Цитата Сообщение от useruser Посмотреть сообщение
Вот это вообще бесмысленно, можно сказать даже не зная php...
Почему, я придумал так, берем первый элемент, ложем "на выход", потом этот элемент сравниваем с последующими, если он не равен, то этот элемент ложем туда же "на выход", если равен, то не чего не делаем, т.е. на выходе будет массив без дублей по первому элементу, затем вот это все надо запустить но уже со второго элемента, и так далее пока не кончиться массив, будет много циклов, мне это не очень понравилось, т.к. скорость обработки при большом объеме данных будет очень медленная, много времени будет занимать эта обработка.

Добавлено через 1 минуту
Цитата Сообщение от полудух Посмотреть сообщение
т.е. кеи разные, но содержимое одно
Не не значения из разных ключей не пересекаются, так сказать это разные группы данных.

Добавлено через 2 минуты
полудух, Грубо говоря, в KEY1 хранятся данные о породе кошек, в KEY5 хранятся их возраст, я думаю навряд ли эти данные пересекутся когда либо.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 10:44
Цитата Сообщение от Gcom Посмотреть сообщение
Элемент [0] массива считается дублем с элементом [1] массива по ключам: KEY1, KEY4, KEY6, KEY9
И все элементы [0], [1], [2] массива считаются дублями по ключам: KEY1, KEY4, KEY6
второе получается лишним, если последовательно сравнивать каждый $arr[01234] со всеми остальными
$arr[0] с $arr[1],$arr[2],$arr[N]
$arr[1] с $arr[2],$arr[3],$arr[N]
итд
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 10:54  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
второе получается лишним, если последовательно сравнивать каждый $arr[01234] со всеми остальными
$arr[0] с $arr[1],$arr[2],$arr[N]
$arr[1] с $arr[2],$arr[3],$arr[N]
итд
Не совсем понятно о чем Вы, тут изначально:
1. входящий массив
PHP
1
$aArray
2. массив ключей по которым нужно искать дубли
PHP
1
$aKeyArray  = array ('KEY1', 'KEY4', 'KEY6', 'KEY9');
3. выходной массив (в котором эти дубли отсутствуют, по заданным параметрам в п.2
PHP
1
$aTempArray
Добавлено через 3 минуты
В идеале должно получиться следующее:
PHP
1
2
3
4
function removeDuplicateKeys ($aArrayIn, $aKeyArrayIn) {
...
}
$aTempArray = removeDuplicateKeys ($aArray, $aKeyArray);
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 11:01
что вы воду мутите, вот ваше ТЗ:
Цитата Сообщение от полудух Посмотреть сообщение
Элемент [0] массива считается дублем с элементом [1] массива по ключам: KEY1, KEY4, KEY6, KEY9
И все элементы [0], [1], [2] массива считаются дублями по ключам: KEY1, KEY4, KEY6
разницу понимаете между "отдельный массив с ключами, которые надо вычистить" и "прорядить дубли внутри исходного массива" ?
в 1м сообщении тоже ни слова про такое условие
этот $aKeyArray вы выдумали позже, когда пытались решить задачу через какие-то грабли
я вам дал алгоритм, как это делается на самом деле
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 11:18  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
разницу понимаете между "отдельный массив с ключами, которые надо вычистить" и "прорядить дубли внутри исходного массива" ?
Ну может быть я и не правильно выразился.
Цитата Сообщение от полудух Посмотреть сообщение
$arr[0] с $arr[1],$arr[2],$arr[N]
$arr[1] с $arr[2],$arr[3],$arr[N]
Что то похожее я начал делать, только немного не так, сейчас попробую по Вашему алгоритму.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 11:53
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
 
// сюда ляжет чистый массив без дублей
$arr2 = array();
 
$arr = array(
    0 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique1",
        "KEY3" => "unique2",
        "KEY4" => "Value2",
        "KEY5" => "unique3",
        "KEY6" => "Value3",
        "KEY7" => "unique4",
        "KEY8" => "unique5",
        "KEY9" => "Value4",
    ),
    1 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique6",
        "KEY3" => "unique7",
        "KEY4" => "Value2",
        "KEY5" => "unique13",
        "KEY6" => "Value3",
        "KEY7" => "unique9",
        "KEY8" => "unique10",
        "KEY9" => "Value4",
    ),
    2 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique11",
        "KEY3" => "unique12",
        "KEY4" => "Value2",
        "KEY5" => "unique13",
        "KEY6" => "Value3",
        "KEY7" => "unique14",
        "KEY8" => "unique15",
        "KEY9" => "unique16",
    ),
);
 
/*
последовательно сравнить каждый $arr[01234] со всеми остальными
$arr[0] с $arr[1],$arr[2],$arr[N]
$arr[1] с $arr[2],$arr[3],$arr[N]
*/
foreach ($arr as $key=>$val) {fix_doubles($key);}
 
print_r($arr2);
 
##      СРАВНЕНИЕ МАССИВА $n (01234) со всеми остальными массивами, которые идут после него
function fix_doubles(&$n)
{
    global $arr,$arr2;
 
    echo "\n\tмассив № ",$n," сравнивается со всеми остальными массивами:\n";
 
    // $i = каждый массив [0123], идущий после текущего
    for ($i=$n+1;$i<$arr;$i++)
    {
        // поиск дублей. $key = ключ KEY1/KEY2/KEYN, $val = Value1/unique11 - значение в общем
        foreach ($arr[$n] as $key=>$val)
        {
            // если нашёлся дубль, он убирается из последующего массива
            if (isset($arr[$i]{$key}) && $arr[$n]{$key} === $arr[$i]{$key})
            {
                echo"найден дубль в \$arr[",$n,"]: ",$key," - ",$val,"\n";
                unset($arr[$i]{$key});
            }
 
            // а текущий массив заносится в новый чистый $arr2
            $arr2[$n]{$key} = $val;
        }
 
        // массивы закончились
        if (!isset($arr[$i])) {return false;}
 
    }
 
}
 
?>
1
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 12:43  [ТС]
полудух, Меня всегда пугали такие записи (&$n), ну не понимаю я ссылок, а потому разобраться в коде будет сложно, особенно если потребуется сделать в нем изменения, но все равно СПС, будем разбираться
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 12:55
в гардеробе когда оставляешь одежду дают номерок
номерок это ссылка на одежду, вместо самой одежды
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 13:08  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
в гардеробе когда оставляешь одежду дают номерок
номерок это ссылка на одежду, вместо самой одежды
С гардеробом понятно, а вот с практикой на РНР нет

Код работает не правильно, выводит первый элемент массива со всеми ключами, а затем у остальных элементов отсутствуют пары "Ключ => Значение", т.е. если у первого элемента все девять пар присутствуют, то у остальных то одна, то две, то 4 этих пар.

Добавлено через 8 минут
Вот мой вариант, но он почему то еще больше дублей плодит, чем убирает
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$nCountArray = count ($aArray) - 1;
        
for ($i = 0; $i < $nCountArray; $i++) { 
 
    $aTempArray[] = array (
        'KEY1' => $aArray[$i]['KEY1'],   
        'KEY2' => $aArray[$i]['KEY2'],  
        'KEY3' => $aArray[$i]['KEY3'],  
        'KEY4' => $aArray[$i]['KEY4'],  
        'KEY5' => $aArray[$i]['KEY5'],  
        'KEY6' => $aArray[$i]['KEY6'], 
        'KEY7' => $aArray[$i]['KEY7'],  
        'KEY8' => $aArray[$i]['KEY8'], 
        'KEY9' => $aArray[$i]['KEY9'],
    );
        
    for ($j = 0; $j < $nCountArray; $j++) {
                
        if (($aArray[$i][$aKeyArray[0]] !== $aArray[$j+1][$aKeyArray[0]]) &&
            ($aArray[$i][$aKeyArray[1]] !== $aArray[$j+1][$aKeyArray[1]]) &&
            ($aArray[$i][$aKeyArray[2]] !== $aArray[$j+1][$aKeyArray[2]]) &&
            ($aArray[$i][$aKeyArray[3]] !== $aArray[$j+1][$aKeyArray[3]]) ) {
                    
            $aTempArray[] = array (
                'KEY1' => $aArray[$j+1]['KEY1'],   
                'KEY2' => $aArray[$j+1]['KEY2'],  
                'KEY3' => $aArray[$j+1]['KEY3'],  
                'KEY4' => $aArray[$j+1]['KEY4'],  
                'KEY5' => $aArray[$j+1]['KEY5'],  
                'KEY6' => $aArray[$j+1]['KEY6'], 
                'KEY7' => $aArray[$j+1]['KEY7'],  
                'KEY8' => $aArray[$j+1]['KEY8'], 
                'KEY9' => $aArray[$j+1]['KEY9'],
                );              
        };
    };
};
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
18.03.2016, 13:09
а вы чего хотите, удалять И исходник, И дубль?
тогда это уже не дубль, если исходник удалить
код оставляет в массиве 1 единственную запись из множества таких же
если она раньше присутствовала в нескольких массивах, то будет только в первом найденном
это и есть чистка дублей, а вы о чём?
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.03.2016, 13:40  [ТС]
полудух, Видать я плохо ставлю задачу, пробую еще раз.
В массиве $aArray есть элементы в виде массива:
PHP
1
2
3
4
5
6
7
8
9
10
11
    0 => array(
        "KEY1" => "Value1",
        "KEY2" => "unique1",
        "KEY3" => "unique2",
        "KEY4" => "Value2",
        "KEY5" => "unique3",
        "KEY6" => "Value3",
        "KEY7" => "unique4",
        "KEY8" => "unique5",
        "KEY9" => "Value4",
    ),
Дак вот нужно перебрать эти элементы ($aArray[0], $aArray[1], $aArray[2], $aArray[N],) и удалить те элементы (структуру вложенного массива не менять) у которых значения:
"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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2016, 13:40
Помогаю со студенческими работами здесь

Убрать дубли из готового отчета
Прошу помочь, очень важно!! Есть сложный отчет, суть которого многострочный поиск по выборке из БД, Отчет кончается так: ...

Как хитро убрать дубли
Здравствуйте. Подскажите пожалуйста как избавится от дублей. SELECT u.id AS users_id, app.id AS app, SUM(c.balance), ...

Убрать дубли избранного материала
Вопрос по дублям Joomla 3. Не могу исправить. Статья - избранный материал на главной. Материал расположен в меню статьи, категория...

Как убрать дубли страниц на joomla 3 + K2
Ситуация такая. Вобщем с дублями как-то борюсь при помощи robots. но всё же они остались. Я использую компонент К2 для вывод...

Появляются дубли сайта, как их убрать?
Доброе время суток! В последнее время у сайта начали плодиться поддомены, являющиеся полными дублями основного сайта. Проблема в том, что...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
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
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru