Без параметра 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 ) )