PHP 中的数字相反,未显示正确的输出


Reverse of number in PHP not showing correct output

我做了一个程序来反转数字,但每次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);

你可以通过你的目标来实现这个...

$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((

如何使用strrev

$>cat r.php
<?php
$num=675;
$rev= (int) strrev("{$num}");
echo "{$num} : {$rev}".PHP_EOL;
?>
$>php r.rev
675 : 576

这个 100% 有效:-

 $mac = 123;
 $step1 = strrev((string)$mac);
 $step2 = (int)$step1;
 echo $mac." and ".$step2*2;//checking

这是我在网上找到的一个数字反转器:

<?php 
$num=6541020; 
$revnum=0; 
do{ 
    $revnum=($revnum *10)+($num % 10); 
    $num=(int)($num / 10 ); 
}while($num>0); 
echo $revnum; 
?>

资料来源:http://www.weberdev.com/get_example.php3?ExampleID=4879

$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; 

这么简单,试试这个:

$num = 4321;
$rev = 0;
while($num > 1) {
    $temp = $num % 10;  
    $num = (int) $num / 10;
    echo $temp;
}

输出:

1234