Loop Logic массива, уникальный идентификатор

Надеюсь, кто-нибудь подскажет, как мне это сделать.

У меня есть эти данные:

0 -> id=1 other_id = 2
1 -> id=1 other_id = 3
2 -> id=1 other_id = 4
3 -> id=2 other_id = 7
4 -> id=2 other_id = 5

Теперь в моем цикле я хотел бы выдвинуть уникальные идентификаторы и объединить другие данные идентификаторов, чтобы результат был:

0-> id=1 other_ids = 2,3,4
1-> id=2 other_ids = 7,5

Я думаю об использовании временной переменной, но не могу сделать структуру данных.

Кстати, я использую codeigniter, результат от модели, и я хотел бы управлять им в контроллере через php.

0

Решение

я надеюсь помочь тебе

Шаг 1: Создать класс

public class Person
{
public int id { get; set; }
public int other_id { get; set; }
}

Шаг 1: этот код поможет вам

string output = string.Empty;

List<Person> lst = new List<Person>();
lst.Add(new Person(){ id= 1, other_id = 2});
lst.Add(new Person(){ id= 1, other_id = 3});
lst.Add(new Person(){ id= 1, other_id = 4});
lst.Add(new Person(){ id= 2, other_id = 7});
lst.Add(new Person(){ id= 2, other_id =5 });

List<int> idlst = new List<int>();
idlst = lst.Select(x => x.id).Distinct().ToList();foreach (int _id in idlst)
{
List<int> other_idlist = lst.Where(x => x.id == _id).Select(x=> x.other_id).ToList();
output += string.Format("id={0} other_ids = {1}", _id, string.Join(",", other_idlist)) + Environment.NewLine;
}

MessageBox.Show(output);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector