Массивы PHP, согласно документации , представляют собой единую структуру данных, подходящую для всех, которая работает как упорядоченный список или как хэш-карта (словарь).Delphi не имеет аналогичной встроенной структуры данных, вы можете получить только векторное (упорядоченный список) поведение или поведение хэш-карты / словаря.А поведение словаря легко доступно только в Delphi 2009+, потому что именно в этой версии представлены Generics.
Простая в использовании структура данных, которая доступна в Delphi 2007 и может использоваться для операций типа inset
TStringList
, в режиме Sorted := True
.Но это не настоящий словарь, это просто отсортированный список строк, где каждая строка может иметь значение, связанное с ней.Вы бы использовали это так:
procedure Test;
var L: TStringList;
begin
L := TStringList.Create;
try
L.Sorted := True; // make the list "Sorted" so lookups are fairly fast
L.AddObject('doc1', SomeData); // SomeData can't be string, it needs to be TObject descendant
L.AddObject('doc2', SomeOtherData);
if L.IndexOf('doc3') = -1 then // this is equivalnt to the `inset` test
begin
// doc3 is not in list, do something with it.
end;
finally L.Free;
end;
end;
Это, конечно, не полный ответ, но вам следует начать.