我写了这个函数,它接受一个数字并用逗号格式化,所以每三个数字从右到左,一个逗号添加。
它有效,但是有一个“单位化字符串偏移量”的错误,我发现这是由于我将字符串视为一个数组。
我决定发布我的代码,看看是否有更直接的方法来做到这一点。
否则,我的主要问题是如何将该字符串转换为数组?
我尝试使用str_split,但它破坏了我的代码/页面。
<?php
// comma function
function commaCreate($num) {
// convert number to string
$int_string = strval($num);
// turn $int_string into an array (omitted as it doesn't work)
// $int_string = str_split($int_string);
// get length of string
$int_length = strlen($int_string);
// create variables
$counter = 0;
$formatted_number = "";
// run through number right-to-left
for ($i = $int_length; $i >= 0; $i--) {
if ($counter == 3) {
// add number
$formatted_number = $int_string[$i].$formatted_number;
// add comma
if ($i != 0) {
$formatted_number = ",".$formatted_number;
}
// reset counter
$counter = 0;
$counter++;
}
else {
$formatted_number = $int_string[$i].$formatted_number;
$counter++;
}
}
// output formatted number
echo $formatted_number;
}
commaCreate(300000); // outputs 300,000
?>
我想我已经意识到,如果我选择了这条路,我可以做些什么。
我只是通过字符串(作为数组 cringe )并将其添加到数组中。
类似
$array = array();
$num_string = strval($num);
$num_length = strlen($num_string);
for ( $i = 0; $i < $num_length; $i++) {
$array = $num_string[$i];
}
我认为这会起作用,不确定,必须尝试一下,但是由于akDeveloper,我有一个更简单的解决方案
答案 0 :(得分:3)
PHP&#34; $&#34;变量包括每种类型的变量。你只需要一些技巧就可以将任何变量转换成你想要的变量。例如:
$n = 12345; // This is integer
$s = $n.""; // Now $s is string.
echo $s[2]; // Now $s is array.
输出:&#34; 3&#34;。作为$ n在2 = 3