Need to get last digit of number - what's most efficient way?

I have a value:

$overall = "598397";  //for example

I need to get the last digit of that.

I've done a bit of research and have found two solutions commonly bantered about:

$last_digit = $overall % 10;

and

$last_digit = substr($overall, -1);

Which is the most efficient way to do this?

$overall will always be positive, will be '0' sometimes, and can grow quite large (low millions possible),

Thanks for any thoughts on this,

Chris
St_Aug_Beach_BumAsked:
Who is Participating?
 
Ray PaseurCommented:
Or maybe not.  It will depend on the input you have.  

See http://www.laprbass.com/RAY_temp_staug.php

<?php // RAY_temp_staug.php
error_reporting(E_ALL);

$nums = array
( 1
, 123
, 0
, 42
, 3.1415926
, 1000000009
, "1,007"
)
;
foreach ($nums as $num)
{
    $mod = $num % 10;
    $sub = substr($num, -1);
    echo PHP_EOL . "<br>INPUT NUMBER: $num, MOD: $mod, SUBSTR: $sub";
}

Open in new window

Outputs:
INPUT NUMBER: 1, MOD: 1, SUBSTR: 1
INPUT NUMBER: 123, MOD: 3, SUBSTR: 3
INPUT NUMBER: 0, MOD: 0, SUBSTR: 0
INPUT NUMBER: 42, MOD: 2, SUBSTR: 2
INPUT NUMBER: 3.1415926, MOD: 3, SUBSTR: 6
INPUT NUMBER: 1000000009, MOD: 9, SUBSTR: 9
INPUT NUMBER: 1,007, MOD: 1, SUBSTR: 7

This is an artifact of PHP type juggling.

HTH, ~Ray
0
 
Ray PaseurCommented:
I'd probably use either of those.  I think the results will usually be the same.
0
 
North2AlaskaCommented:
The question would be do you want the zero or a digit 1-9?
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
St_Aug_Beach_BumAuthor Commented:
I'd want 0 through 9 - looks like substr it is :)

Thank you both!

Chris
0
 
St_Aug_Beach_BumAuthor Commented:
Thanks for running the test on these Ray -
0
 
Ray PaseurCommented:
Thanks for the points and thanks for using EE.  I always find it's better to run a quick test than to depend on anything in the PHP funhouse :-)  Happy New Year, ~Ray
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.