Как разделить строку на символы с учётом ударений?
Можно пройтись по массиву и объединить символ ударения с предыдущим символом.$arrayLetters = preg_split('//u', "оди́н", NULL, PREG_SPLIT_NO_EMPTY);
$arrayLettersResult = [];
$stressSym = "́";

foreach ($arrayLetters as $i => $letter) {
    if ($letter == $stressSym) continue;
    if (!empty($arrayLetters[$i + 1]) && $arrayLetters[$i + 1] == $stressSym) {
        $arrayLettersResult[] = $letter . $stressSym;
    } else {
        $arrayLettersResult[] = $letter;
    }
}

var_dump($arrayLettersResult);

/*
array(4) {
  [0]=>
  string(2) "о"
  [1]=>
  string(2) "д"
  [2]=>
  string(4) "и́"
  [3]=>
  string(2) "н"
}
*/
Можно пройтись по массиву и объединить символ ударения с предыдущим символом.$arrayLetters = preg_split('//u', "оди́н", NULL, PREG_SPLIT_NO_EMPTY);
$arrayLettersResult = [];
$stressSym = "́";

foreach ($arrayLetters as $i => $letter) {
    if ($letter == $stressSym) continue;
    if (!empty($arrayLetters[$i + 1]) && $arrayLetters[$i + 1] == $stressSym) {
        $arrayLettersResult[] = $letter . $stressSym;
    } else {
        $arrayLettersResult[] = $letter;
    }
}

var_dump($arrayLettersResult);

/*
array(4) {
  [0]=>
  string(2) "о"
  [1]=>
  string(2) "д"
  [2]=>
  string(4) "и́"
  [3]=>
  string(2) "н"
}
*/