номера сумм в замененной строке числами

скажем, у меня есть эти два массива

$letters = array('a','b','c', 'd', 'e'); $replace = array( 1, 5, 10, 15 , 20); $text = "abd cde dee ae d" ; $re = str_replace($letters, $replace, $text) ; echo $re ; //this output: 1515 101520 152020 120 15 

Теперь я хочу суммировать вышеуказанные числа для каждого слова, и результат должен быть таким:

  21 45 55 21 15 

что я пытался:

  $resultArray = explode(" ", $re); echo array_sum($resultArray).'<br />' ; // but it output wrong result. // it output this : 255190 

как я могу это достичь?

любая помощь, которую многие оценили.

РЕДАКТИРОВАТЬ:

с такими арабскими буквами

  $letters = array('ا', 'ب','ج','د' ) ; $replace = array(1, 5, 10, 15 ) ; $text = "جا باب جب"; 

    Преобразуйте строку в массив и используйте array_sum .

     array_sum(explode(' ', $re)); 

    редактировать

    Извините, неправильно понял:

     $letters = array('a','b','c', 'd', 'e'); $replace = array( 1, 5, 10, 15 , 20); $text = "abd cde dee ae d" ; $new_array = explode(' ', $text); $sum_array = array(); foreach ($new_array as $string) { $nums = str_split($string); foreach ($nums as &$num) { $num = str_replace($letters, $replace, $num); } $sum_array[] = array_sum($nums); } echo implode(' ', $sum_array); 

    Вместо того, чтобы заменять буквы цифрами, я бы предложил просто искать буквы в массиве replace по одному за раз:

    РЕДАКТИРОВАТЬ

     <?php $text = "abd cde dee ae d"; $replace = array('a' => 1, 'b' => 5, 'c' => 10, 'd' => 15, 'e' => 20); $letters = str_split($text); $sums = array(0); foreach ($letters as $letter) { // Add a new element to the sum array. if ($letter == ' ') { $sums[] = 0; } else { $sums[count($sums) - 1] += $replace[$letter]; } } echo implode(" ", $sums); ?> 

    Вот рабочий пример: http://codepad.org/Cw71zuKD