我制作了一个程序来反转数字,但每次0
都会附加到结果中。
$num = 675;
$rev = 0;
while($num > 0) {
$temp = $num % 10;
$rev = ($rev * 10) + $temp;
$num = (int) $num / 10;
}
echo $rev; //result is 5760
我制作了一个程序来反转数字,但每次0
都会附加到结果中。
$num = 675;
$rev = 0;
while($num > 0) {
$temp = $num % 10;
$rev = ($rev * 10) + $temp;
$num = (int) $num / 10;
}
echo $rev; //result is 5760
你的问题是这一行:
$num = (int) $num / 10;
这与以下内容相同:
$num = ((int) $num) / 10;
所以它实际上并没有投射结果。使用额外的括号:
$num = (int) ($num / 10);
这是你完整的代码。
<?php
$n = 3456;
$reverse = 0;
while ($n > 0)
{
$reverse = $reverse * 10;
$reverse = $reverse + $n%10;
$n = (int)($n/10);
}
echo $reverse;
?>
输出将是 6543
在php中你可以做$rev = (int)strrev($num);
如何使用strrev
:
$>cat r.php
<?php
$num=675;
$rev= (int) strrev("{$num}");
echo "{$num} : {$rev}".PHP_EOL;
?>
$>php r.rev
675 : 576
你可以通过你的目标来实现这个......
$num = 675;
$num_array = str_split($num);
$final_num_array = array_reverse($num_array);
$rev_num = implode("",$final_num_array);
你可以尝试这样的事情:
<?php
$num = 675;
$strNum = (string) $num;
$revStrNum = strrev($strNum);
$revNum = (int) $revStrNum;
echo $revNum; //Output 576 when I tried it
?>
注意,我使用了字符串函数strrev()
这 100% 有效:-
$mac = 123;
$step1 = strrev((string)$mac);
$step2 = (int)$step1;
echo $mac." and ".$step2*2;//checking
很简单,试试这个:
$num = 4321;
$rev = 0;
while($num > 1) {
$temp = $num % 10;
$num = (int) $num / 10;
echo $temp;
}
输出:
1234
$num = 675; $rev = 0;
while($num > 1) { //do $num value lent-1
$temp = intval($num) % 10;
$rev = intval($rev) * 10 + $temp;
$num = intval($num)/ 10;
}
echo $rev;
这是我在网上找到的一个数字反转器:
<?php
$num=6541020;
$revnum=0;
do{
$revnum=($revnum *10)+($num % 10);
$num=(int)($num / 10 );
}while($num>0);
echo $revnum;
?>