<?php
function do_universal_inn_check($inn) {
                if(!is_numeric($inn)) return false;
                $weights = array(3,7,2,4,10,3,5,9,4,6,8,0);
                $chr = str_split((string)$inn);
                switch (strlen($inn)) {
                        case 12:
                        //do first 11 digits cksum
                        $cksum_one = 0;
                        for($i=0;$i<11;$i++) $cksum_one += $weigths[$i+1] * $chr[$i];
                        $cksum_one %= 11;
                        if($cksum_one > 9) $cksum_one %= 10;
                        //do entire INN
                        $cksum_two = 0;
                        for($i=0;$i<12;$i++) $cksum_two += $weights[$i] * $chr[$i];
                        $cksum_two %= 11;
                        if($cksum_two > 9) $cksum_two %= 10;
                        return (((int)$chr[10] === (int)$cksum_one) && ((int)$chr[11] === (int)$cksum_two)) ? true : false;
                        break;
                case 10:
                        $cksum = 0;
                        for($i=0;$i<10;$i++) $cksum += (int)$weights[$i+2] * (int)$chr[$i];
                        $cksum %= 11;
                        if($cksum > 9) $cksum %= 9;
                        return ((int)$chr[9] === (int)$cksum) ? true : false;
                        break;
                default:
                        // ne byvaet takih INN SOOKAA
                        return false;
                        break;
                }

     return false;
  }

// test
// invalid 10 int inn
echo var_dump(do_universal_inn_check(7743013902));
// valid VEKTOR LTD LPP PZDC GMBH
echo var_dump(do_universal_inn_check(5702001741));
