Используются все разделители, которые вы установили в $delimiters
, как показано в этой строке:
while (isset($delimiters[$d_count]))
$d_count
увеличивается в нижней части цикла, $d_count++
, и $return_array
возвращается после того, как он проходит по всем разделителям, отделяя от $string
столько, сколько вы указали.
Вернуть правильный разделитель в положение, в котором он находился ранее, вы не сможете, если не измените информацию, которую вы возвращаете в $return_array
. Что-то вроде этого - то, что вы ищете:
$return_array[] = $new_return_array;
$delim = $delimiters[$d_count];
$return_array['delim'] = new Array();
$return_array['delim'][$delim][] = $new_return_array;
$d_count++;
Это сохранит слова, разделенные каждым разделителем, в дочернем массиве под индексом delim
вашего возвращенного результата. Тогда все, что вам нужно сделать, чтобы взорвать их обратно, это что-то вроде этого:
$string2 = '';
foreach ( $return_array as $delim => $word )
{
// not sure how to reverse your function at this moment, will get back with this part...
}