Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Использование PHP-like операций с массивами

01.01.2007
//Some Array-functions like in PHP.
 
type
 
 
ArrOfStr = array of string;
 
implementation
 
function explode(sPart, sInput: string): ArrOfStr;
begin
 
while Pos(sPart, sInput) <> 0 do
 
begin
   
SetLength(Result, Length(Result) + 1);
   
Result[Length(Result) - 1] := Copy(sInput, 0,Pos(sPart, sInput) - 1);
   
Delete(sInput, 1,Pos(sPart, sInput));
 
end;
 
SetLength(Result, Length(Result) + 1);
 
Result[Length(Result) - 1] := sInput;
end;
 
function implode(sPart: string; arrInp: ArrOfStr): string;
var
  i
: Integer;
begin
 
if Length(arrInp) <= 1 then Result := arrInp[0]
 
else
 
begin
   
for i := 0 to Length(arrInp) - 2 do Result := Result + arrInp[i] + sPart;
   
Result := Result + arrInp[Length(arrInp) - 1];
 
end;
end;
 
procedure sort
(arrInp: ArrOfStr);
var
  slTmp
: TStringList;
  i
: Integer;
begin
  slTmp
:= TStringList.Create;
 
for i := 0 to Length(arrInp) - 1 do slTmp.Add(arrInp[i]);
  slTmp
.Sort;
 
for i := 0 to slTmp.Count - 1 do arrInp[i] := slTmp[i];
  slTmp
.Free;
end;
 
procedure rsort
(arrInp: ArrOfStr);
var
  slTmp
: TStringList;
  i
: Integer;
begin
  slTmp
:= TStringList.Create;
 
for i := 0 to Length(arrInp) - 1 do slTmp.Add(arrInp[i]);
  slTmp
.Sort;
 
for i := 0 to slTmp.Count - 1 do arrInp[slTmp.Count - 1 - i] := slTmp[i];
  slTmp
.Free;
end;

Взято с сайта https://www.swissdelphicenter.ch/en/tipsindex.php