通过数字的字符串替换数总和 [英] sum numbers in a replaced string by numbers

查看:145
本文介绍了通过数字的字符串替换数总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可以说我有这两个数组

  $字母=阵列('A','B','C','D','E');
   $替换=阵列(1,5,10,15,20);
   $文字=ABD CDE迪AE D;
   $重新= str_replace函数($字母,$替换,​​$文字);
   回声$重; //这样的输出:     1515 101520 152020 120 15

现在我想总结上面的数字为每个单词,其结果应该是这样的:

  21 45 55 21 15

我的尝试是:

  $ resultArray =爆炸(,$重);    回声array_sum($ resultArray)。'< BR />' ; //但输出错误的结果。
                                           //它输出这样的:255190

我怎样才能做到这一点?

任何帮助太大的preciated。

编辑:

用阿拉伯字母一样,

  $字母=阵列('ا','ب,ج','د');
   $替换=阵列(1,5,10,15);
   $文字=جابابجب


解决方案

将字符串到一个数组,并使用的 array_sum

  array_sum(爆炸('',$ RE));

修改

对不起,误会了:

  $字母=阵列('A','B','C','D','E');$替换=阵列(1,5,10,15,20);$文字=ABD CDE迪AE D;$ new_array =爆炸('',$文字);$ sum_array =阵列();的foreach($ new_array为$字符串)
{  $ NUMS = str_split($字符串);  的foreach($ NUMS为&放大器; $ NUM)
  {
    $ NUM = str_replace函数($字母,$取代,$ NUM);
  }  $ sum_array [] = array_sum($ NUMS);}回声破灭('',$ sum_array);

lets say i have those two arrays

   $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 

Now i want sum the above numbers for each word and the result should be like that:

     21 45 55 21 15

what i tried is :

    $resultArray = explode(" ", $re); 

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

how can i achieve this ?

any help much apreciated.

EDIT:

with arabic letters like that

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

解决方案

Convert the string into an array and use array_sum.

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

Edit

Sorry, misunderstood:

$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);

这篇关于通过数字的字符串替换数总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆