php - 在 PHP 中打印带有正确 (+/-) 符号的数字序列
问题描述
我需要按顺序打印一些数字,它们之间有 + 和 - 。但是,我事先不知道哪个数字是正数,哪个是负数。目前,我像这样回应他们:
echo "$a + $b + $c + $d + $e + $f";
假设$a
to的值$f
都是正数。我会得到类似的东西:5 + 10 + 12 + 18 + 9 + 7
。
但是,如果某些值是负数,我会得到类似5 + -10 + 12 + -18 + 9 + - 7
. 在这种情况下,理想的输出是5 - 10 + 12 - 18 + 9 - 7
.
请不要说我不想计算加法或减法的最终结果。我只想用正确的标志将它全部打印在网页上。
我可以通过编写 6 个嵌套if()
块来做到这一点,但这似乎需要做很多工作,而且每次都这样做很容易出错。有什么聪明的办法可以输出正确的符号。
解决方案
最简单的方法是更正最终字符串中的运算符外观:
$s = '5 + -10 + 12 + -18 + 9 + - 7'; // result of interpolation or concatenation
$s = str_replace('+ -', '- ', $s);
// => "5 - 10 + 12 - 18 + 9 - 7"
如果这对您来说是可能的,那么这将是尽可能快的——没有循环(在 php 中),没有条件一次处理每个数字。如果你无论如何都要循环,我会推荐@Phils 建议array_reduce
——功能风格的php——适应你的需要。
推荐阅读
- php - 将自定义字段添加到“编辑供应商”页面 - Woocommerce 产品供应商
- javascript - 当我放大它时,我的 D3js 树形图不属于我的 div
- azure - 在 azure sql server 上添加故障转移组时用于 JDBC 的连接字符串
- javascript - 谷歌标签管理器和 $ (JQuery) 未定义
- ios - 使用 UIPageViewController 的一些错误
- c++ - 使用向量容器挂起,同时使用数组快速计算 2D 数组
- c# - 如何使用通用类型运行 LINQ 查询
- html - 这个 Sass 代码有什么区别(一个给出无效的 css 错误,另一个没有)?
- angularjs - 在离子中显示旋转按钮(向上向下)
- apache-poi - 错误:无法初始化主类 newpackage.MyClass 原因:java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row