Удаление одинаковых элементов в двумерном массиве

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Solutions
Сообщения: 93
Зарегистрирован: 2014.01.09, 13:23
Откуда: Казахстан. ВКО. Усть-Каменогорск

Удаление одинаковых элементов в двумерном массиве

Сообщение Solutions » 2018.12.24, 08:25

Здравствуйте, есть два массива:

1-ый:

Код: Выделить всё

array(6) 
	{ 
		[0]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[1]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[2]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[3]=> array(6) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[4]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[5]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
			} 
	}
2-ой:

Код: Выделить всё

array(7) 
	{ 
		[0]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[1]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[2]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[3]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[4]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
		[5]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
			}
		[6]=> array(7) 
			{ 
				[0]=> string(19) "2018-12-13 22:48:44" 
				[1]=> string(3) "фцв" 
				[2]=> string(3) "про" 
				[3]=> string(3) "кен" 
				[4]=> string(8) "ъхзджэ.ю" 
				[5]=> string(8) "йцуфывяч" 
				[6]=> string(5) "паами" 
			} 
	}

как их сравнить и удалить одинаковые значения?
вот с чего я начал

Код: Выделить всё

for ($i = 0; $i < count($arr); $i++)
                {
                    for ($j = 0; $j < count($values); $j++)
                    {
                        if ($arr[$i] != $values[$j])
                        {
                            $e = 'не равны';
                        }
                        else
                        {
                            $e = 'равны';
                        }
                    }
                }

andku83
Сообщения: 987
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Удаление одинаковых элементов в двумерном массиве

Сообщение andku83 » 2018.12.24, 13:47

Не совсем конкретно заданный вопрос.
Предположительные догадки:
1. Фильтрация дублирующихся значений:

Код: Выделить всё

        $filteredArray = [];
        foreach ($arr as $item) {
            if (!in_array($item, $filteredArray)) {
                $filteredArray[] = $item;
            }
        }
        var_dump($filteredArray);
2. array_intersect — Вычисляет схождение массивов
3. array_diff — Вычисляет расхождение массивов
4. array_filter — Фильтрует элементы массива с помощью callback-функции:
5. Первый вариант средствами PHP - array_unique — Убирает повторяющиеся значения из массива:

Код: Выделить всё

        $filteredArray = array_unique($arr, SORT_REGULAR);
        var_dump($filteredArray);
З.Ы. Не используйте для проверки работоспособности вашего скрипта очень похожие данные

Ответить