как убрать повторяющиеся значения из многомерного массива php

Игорь Z

Новичок
Пожалуйста помогите чайнику:

есть массив:
Array (
[0] => Array ( [3] => 1 )
[1] => Array ( [7] => 1 )
[2] => Array ( [9] => -1 )
[3] => Array ( [15] => -1 )
[4] => Array ( [3] => 1 )
[5] => Array ( [15] => 1 )
[6] => Array ( [9] => -1 )
...
)

Как мне убрать повторяющиеся значения (я их подчеркнул)? данные и их количество произвольные пользователь вводит с формы.

Как бы мне повторяющиеся значения оставить в одном экземпляре?
Array (
[0] => Array ( [3] => 1 )
[1] => Array ( [7] => 1 )
[2] => Array ( [9] => -1 )
[3] => Array ( [15] => -1 )
[4] => Array ( [15] => 1 )
...
)

Спасибо! Заранее прошу простить за НЕ грамотность в постановке задачи.
 

Фанат

oncle terrible
Команда форума
а откуда у тебя такой массив и почему он многомерный?
 

Игорь Z

Новичок
а откуда у тебя такой массив и почему он многомерный?
задача: есть два поля куда пользователь вводит цифры через пробел. В первом любые цифры, во втором 1 или -1. Кол-во цифр в первом и втором полях одинаковое. Я объединил данные этих двух полей в один многомерных массив. Теперь нужно встречающиеся одинаковые комбинации убрать и оставить один многомерный массив у не повторяющимися данными ...
 

Фанат

oncle terrible
Команда форума
это ответы на опрос что ли?
А поприличнее интерфейса у тебя не нашлось?
скажем, радиокнопки вместо циферок 1 -1?

почему в первом примере два элемента с ключом 3? Так и должно быть?
 

Игорь Z

Новичок
...скажем, радиокнопки вместо циферок 1 -1?
это не важно как вводят радио или текст...
почему в первом примере два элемента с ключом 3? Так и должно быть?
Да именно так и есть и когда все ключи совпадают и ("3" с "1") или ("9" с "-1") то нужно оставить один такой элемент. Подскажите пожалуйста какую функцию дерзать...
 

Фанат

oncle terrible
Команда форума
а какой оставлять-то надо?
первый или второй?
Если всё равно - то какой смысл всех этих телодвижений?
это не важно как вводят радио или текст...
Это важно.
чтобы понимать, для чего весь этот цирк с конями наворочен.
В нормальной практике такие странные танцы с бубном не требуются.
Это значит, что ты, скорее всего, вытесал велосипед из камня с треугольными колесами, и пытаешься на нем ездить. Для задачи, которая решается просто и элементарно.
Вместо того, чтобы помогать ездить, надо сразу переделать велосипед по-человечески.
А для этого надо знать - для чего он понадобился.
 

Игорь Z

Новичок
Вы имеете ввиду array_unique() для одномерного массива? А что же в моем случае использовать для многомерного?
 

Фанат

oncle terrible
Команда форума
я написал 2 сообщения, а не одно.
будь добр прочесть
 

Игорь Z

Новичок
а какой оставлять-то надо?
первый или второй?
Если всё равно - то какой смысл всех этих телодвижений?
Изв, не удел первого сообщения.

возможно так и есть - велосипед из камня, но по другому я пока не умею.

всё равно какой оставлять, главное что-бы не было одинаковых двух ключей (напр: 3 и 1). Так массив уменьшается, и по циклу первые цифри меняются на 1 или -1 и считается за сколько циклов последний элемент массива дойдет до нужного значения...
 

Фанат

oncle terrible
Команда форума
Ещё раз.
Ты можешь объяснить человеческим языком - ДЛЯ ЧЕГО ЭТО ВСЁ?
 

Фанат

oncle terrible
Команда форума
если у тебя значения 1 и -1, то делать многомерный нет смысла.
можно сделать обычный, записывая в него произведение двух чисел
 

Игорь Z

Новичок
можно сделать обычный, записывая в него произведение двух чисел
Спасибо! сделал. Но как теперь сделать все элементы массива положительными? Как все отрицательные умножить на *(-1) ?
PHP:
if ($array_SM_TEST[$x]<0) 
	{$array_SM_TEST[$x]==$array_SM_TEST[$x]*(-1) ;}
	echo "(mod) $array_SM_TEST[$x]";
все равно выводит отрицательное значение.
 

Игорь Z

Новичок
как в одномерном массиве все повторяющиеся элементы умножить на -1 ?

Array ( [0] => 1 [1] => -5 [2] => -5...)

Как перебрать все елементы и однаковые изменить (х -1)
получить:

Array ( [0] => 1 [1] => 5 [2] => 5...)
 

Игорь Z

Новичок
Подскажите
Вот функия убирает одинаковые элементы из массива
PHP:
$array_SM=array_unique($array_SM);
Вот из массива
Array ( [0] => 1 [1] => 5 [2] => 5 [3] => 6 )
функция делает
Array ( [0] => 1 [1] => 5 [3] => 6 )

Но как восстановить последовательность элементов (ключей)? Чтобы был на выходе массив:
Array ( [0] => 1 [1] => 5 [2] => 6 )
 

С.

Продвинутый новичок
array_values()
Но обычно никто не делает этого. Зачем тебе совершать эти лишние телодивижения? Для красоты?
 

Игорь Z

Новичок
array_values()
Но обычно никто не делает этого. Зачем тебе совершать эти лишние телодивижения? Для красоты?
Спасибо - сейчас поюзаю. ...нет, не для красоты. Просто потом при обработке массива в цикле смогу обращаться к элементу массива ($kol_SM - количество элементов в новом массиве без двойников, а $x-ключ и он идёт по порядку 0, 1...).
PHP:
for ($x=0; $x<$kol_SM; $x++)
 
Сверху