php - php以扩展形式数组表示数字
问题描述
我想输入数字到那个数字有功功率输出
like212
是输入输出实功200
++10
2
这种方法也称为展开形式。
扩展形式的数字,例如:
$input = 5362;
我想要这样的输出:
5000,300,60,2
我试图找到许多解决方案但失败了。
如果有人理解我的问题,请给我代码示例。
我的代码编码尝试是在 python 中,但我正在寻找一个 php 解决方案。
user_input = 12345
result = []
for i, num in enumerate(str(user_input)[::-1]): result.append(f'{num} * {10 ** i}')
print(' + '.join(result[::-1]))
解决方案
另一种可能更简单的方法可能是:
$a = 5362;
$length = strlen($a);
foreach (str_split($a) as $item) {
$result[] = $item * 10 ** --$length;
}
echo implode(',', $result);
流程说明:
- 存储字符串长度
- 遍历被拆分为字符数组的字符串
- 处理当前数字:乘以
10^<number of zeroes>
,同时递减值 - 将当前处理的数字存储到结果数组中
- 用于
implode
将数组元素连接到 CSV 字符串中
推荐阅读
- sql - Dlookup 标准语法
- ios - 滑动以在新视图控制器中显示第二张图片
- python - Pip3.7.exe 不接受来自 Pycharm 的 --python 参数
- amazon-web-services - AWS-ML:如何在 AWS 平台上部署/设置我自己的 ML 算法作为付费使用 API?
- regex - 使用 Powershell 和正则表达式拆分字符串
- asp.net-mvc - 无法将类型“字符”转换为“字符串”
- amazon-web-services - AWS IoT 规则从一个 thingShadow 重新发布到另一个
- c - 从C中的两个参数字符串中删除重复字符
- c - C - 十六进制值 0x00 未写入文件
- listview - Flutter - 为每个 Listview 项目运行异步函数