LINUX.ORG.RU

Поиск уникальных значений

 ,


0

1

Привет всем.

Есть такая вот структура:

@a = ({b = 'value1', c => 'value2' }, {d = 'value1', b => 'value3' }, и.т.д );

Значения b,c,d могут быть одинаковыми, а могут и быть и разными. В идеале хотелось бы получить что-то, типа того с уникальными значениями:

$a = {
  value1 => ( 'b', 'd', ... ),
  value2 => ( 'с', 'f', ... ),
  и.т.д
}

Как лучше такое сделать, что-то не очень понимаю?

★★★★

не очень пронял, что ты хочешь, но может поможет shuf(1) с последующей сортировкой и ключом --uniq? (BTW sort(1) у меня на перле, может там что-то полезное найдёшь).

emulek
()

Поиск уникальных значений через хеш и делается.

Не вижу ничего сложного в этой задаче. Одним map'ом не решается, да, но никто не мешает пройти циклом сначала по массиву, потом по хешу

router ★★★★★
()
Ответ на: комментарий от router

Одним map'ом не решается, да, но никто не мешает пройти циклом сначала по массиву, потом по хешу

Да, так и сделаю, наверно

Difrex ★★★★
() автор топика
Ответ на: комментарий от router

т.е. при каждом добавлении будет выполнятся поиск всего списка ключей ан предмет уникальности? Эффективно ли это?

anonymous
()
Ответ на: комментарий от anonymous

Да. Должно быть эффективно. Тебе в любом случае надо для каждого элемента проверить нет ли дублей, а это O(N log N).

soomrack ★★★★★
()

associative array

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.