php - 将 nr 拆分为 10s 100s 1000s
问题描述
嗨,我想使用 intdiv 将一个数字拆分为一个数组,目标是将这样的数字 1234567890 变成
Array
(
[a] => 123456
[b] => 78
[c] => 90
)
$nr = 1234567890;
$nrSplit = array('a'=>10000,'b'=>100,'c'=>1);
$res = array();
foreach ($nrSplit as $key=>$curr)
{
$nr = intdiv($nr, $curr);
$res [$key]= $nr;
}
但这就是我得到的结果:
Array
(
[a] => 123456
[b] => 1234
[c] => 1234
)
解决方案
用于foreach
迭代而不是使用/
&%
$res = array();
foreach($nrSplit as $div){
$nr = isset($previous) ? $previous : $nr;
$res[] = (int) ($nr / $div);// $res[] = intdiv($nr, $div);
$previous = $nr%$div;
}
print_r($res);
现场示例:- https://3v4l.org/Sq9iB
推荐阅读
- kdb - 如何使用 KDB .ml.ts 计算自相关?
- r - 有没有办法在 tbl_summary 中使用 add_p 或 add_difference 函数进行一个有尾 t 检验?
- c++ - 如何构建可以附加类型的类型的 constexpr 向量?
- javascript - 帆布已经在使用中。必须先销毁 ID 为“0”的图表,然后才能重新使用画布
- grafana - 有没有办法在我的 InlfuxQL 查询中自动增加日期?
- visual-studio-code - 如何查看视图的 sql 语句(db 位于 AWS 上)
- c++ - 基本计算器,使用逆波兰表示法
- c - 使用 C 中的文件处理从文件中搜索字符串
- c++ - cmake:编译时没有这样的文件或目录
- javascript - 为什么当我输入 node main.js 时我的不和谐机器人无法上线?