Implementing a 7-3-1 check digit
What is the purpose of $offset? It doesn't seem to do anything here.
What is the possible range of values of $id? Do you need to check that it is an integer, and that it is not negative? 
Can $id have leading zeroes? That would naturally mess up the alignment with the 7 3 1 array, and possibly interfere with using str_split.
I would personally be very nervous about mixing around types like this, treating things as integers, then strings, then integers, then strings again.... At a minimum I would recommend being explicit about every time you do so. Otherwise it's far from clear what is going on.



  Sum is rounded to next full tenth and then from that sum is subsctracted


I would personally always prefer to use mod for this sort of thing, partly because messing with floating point numbers is confusing and partly just because the operation is inherently a mod calculation. For example something like this works as long as $sum is at least 1:

$checkDigit = 9 - (($sum - 1) % 10)