доп. условия: можно что бы ключ верхнего уровня не сохранялся... [0][1][2] -> [0][1] хотелось бы что бы оставалась та группа, в которой остальные значения (в частности [count]) больше.
Спустя 19 минут (5.10.2009 - 17:50) sergeiss написал(а):
Я бы сделал задачу так: Просто иду по циклу по всем элементам массива, и сравниваю текущий элемент со всеми остальными. Если у них совпадает элемент link, то тогда оставляю тот элемент, у которого больше count. А другой тупо удаляю через unset. Можно предварительно отсортировать основной массив функцией usort(). Надо только будет правильно написать функцию обратного вызова. А затем опять же идем циклом по массиву, и проводим подобные сравнения. Только, в отличие от первого варианта, сравнений будет меньше, потому что массив будет уже упорядочен.
Спустя 15 минут, 3 секунды (5.10.2009 - 18:05) kirik написал(а):
Я бы решил задачку так: Проходим циклом через весь исходный массив, создавая новый ассоциативный двумерный массив вида:
При записи нового элемента мы проверяем, существует-ли в набираемом массиве элемент с ключем link, если да, то проверяем значение count; если оно больше, то переписываем значение. Потом просто делаем этому массиву array_values(); и получаем что нужно.
Спустя 9 минут, 3 секунды (5.10.2009 - 18:14) sergeiss написал(а):
kirik - ты знаешь, твоя идея смотрится более оптимальной и наглядной...
Пытался туда же где 'if' воткнуть условие по in_array не получилось, так как массив многомерный, к тому же не знаю как его применить в обратном значении...
Спустя 18 дней, 10 часов, 23 минуты (25.10.2009 - 03:03) нда написал(а):
array_unique
Спустя 1 час, 27 минут, 17 секунд (25.10.2009 - 04:30) kirik написал(а):
Цитата (нда @ 24.10.2009 - 19:03)
array_unique
Покажите как?
Спустя 2 месяца, 13 дней, 11 часов, 21 минута, 51 секунда (8.01.2010 - 15:52) Гость_Алексей написал(а):
if ($test=="1"){echo "Количество значений до =".count($arr)."<br>\n";} $arr2=array_unique ($arr); if ($test=="1"){echo "Количество знаний после =".count($arr2)."<br>\n";}