我已经制作了一个程序来反转这个数字,但每次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 :(得分:8)
你的问题就在这一行:
$num = (int) $num / 10;
与:
相同$num = ((int) $num) / 10;
因此它实际上没有投射结果。使用额外的括号:
$num = (int) ($num / 10);
答案 1 :(得分:6)
这是您完整的代码。
<?php
$n = 3456;
$reverse = 0;
while ($n > 0)
{
$reverse = $reverse * 10;
$reverse = $reverse + $n%10;
$n = (int)($n/10);
}
echo $reverse;
?>
输出为6543
答案 2 :(得分:3)
在php中,你可以$rev = (int)strrev($num);
答案 3 :(得分:1)
你可以通过这个目标实现这个......
$num = 675;
$num_array = str_split($num);
$final_num_array = array_reverse($num_array);
$rev_num = implode("",$final_num_array);
答案 4 :(得分:1)
<?php
$num = 675;
$strNum = (string) $num;
$revStrNum = strrev($strNum);
$revNum = (int) $revStrNum;
echo $revNum; //Output 576 when I tried it
?>
注意,我使用了字符串函数strrev()
答案 5 :(得分:1)
如何使用strrev
:
$>cat r.php
<?php
$num=675;
$rev= (int) strrev("{$num}");
echo "{$num} : {$rev}".PHP_EOL;
?>
$>php r.rev
675 : 576
答案 6 :(得分:1)
这100%有用: -
$mac = 123;
$step1 = strrev((string)$mac);
$step2 = (int)$step1;
echo $mac." and ".$step2*2;//checking
答案 7 :(得分:0)
这是我在网上找到的数字反转器:
<?php
$num=6541020;
$revnum=0;
do{
$revnum=($revnum *10)+($num % 10);
$num=(int)($num / 10 );
}while($num>0);
echo $revnum;
?>
答案 8 :(得分:0)
$ 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;
答案 9 :(得分:0)
这么简单,试试这个:
$num = 4321;
$rev = 0;
while($num > 1) {
$temp = $num % 10;
$num = (int) $num / 10;
echo $temp;
}
输出:
1234