Блог в котором есть много интересной информации…
Без параметра PREG_SPLIT_NO_EMPTY функция ведет себя немного странно – в этом примере она выдаёт три пробела в начале, а пробелы в середине не выдает. Поэтому всё таки лучше этот параметр всегда использовать.
<?php
$str = ' hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE | PREG_SPLIT_NO_EMPTY);
//$chars = preg_split('/( )/', $str, -1, PREG_SPLIT_OFFSET_CAPTURE | PREG_SPLIT_NO_EMPTY);
//$chars = preg_split('/ /', $str);
print_r($chars);
?>
в данном случае, на выходе всё нормально:
Array ( [0] => Array ( [0] => hypertext [1] => 3 ) [1] => Array ( [0] => language [1] => 13 ) [2] => Array ( [0] => programming [1] => 22 ) )