Dim $aArray[3][2][5] = [[['2+2', 1, 2, 3, 4], [5, 6, 7, 8, 9]], [[10, 11, 12, 13, 14], [15, 16, 17, 18, 19]], [[20, 21, 22, 23, 24], [25, 26, 27, 28, 29]]]
MsgBox(0, '', _ArrayToStringEx($aArray))
Func _ArrayToStringEx(Const ByRef $avArray, $sDelim = '|')
If Not IsArray($avArray) Then Return SetError(1, 0, '')
Local $aSubscripts[1] = [UBound($avArray, 0)]
ReDim $aSubscripts[$aSubscripts[0]+1]
Local $aCounters[$aSubscripts[0]+1] = [$aSubscripts[0]]
Local $sExecute = 'String($avArray'
For $i = 1 To $aSubscripts[0] Step +1
$aSubscripts[$i] = UBound($avArray, $i)-1
$aCounters[$i] = 0
$sExecute &= '[$aCounters[' & $i & ']]'
Next
$sExecute &= ')'
Local $sResult
While 1
$sResult &= Execute($sExecute) & $sDelim
For $i = $aCounters[0] To 1 Step -1
If $aCounters[$i] < $aSubscripts[$i] Then
$aCounters[$i] += 1
ExitLoop
ElseIf $i <= 1 Then
ExitLoop 2
Else
$aCounters[$i] = 0
EndIf
Next
WEnd
Return StringTrimRight($sResult, StringLen($sDelim))
EndFunc