<?php
function calculate_hub_sortation_check_digit($str_hub_sortation_prefix) {
$arr_split_prefix = str_split($str_hub_sortation_prefix);
$int_weight = 19;
$int_total = 0;
// calculate position coefficient
foreach($arr_split_prefix as $int_i => $mix_value) {
$int_total += $mix_value * $int_weight;
$int_weight--;
}
// modulus 11
$int_hub_check_digit = $int_total % 11;
// if modulus is 10, check digit is repetition of last digit
if ($int_hub_check_digit === 10) {
echo "is ten\n";
$int_hub_check_digit = array_pop($arr_split_prefix);
}
return $int_hub_check_digit;
}
echo calculate_hub_sortation_check_digit('0465011111500021051');
- Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- is ten
1
- Output for 4.4.5 - 4.4.9
- Fatal error: Call to undefined function: str_split() in /in/0B5EL on line 4
Process exited with code 255. - Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.4
- Fatal error: Call to undefined function: str_split() in /in/0B5EL on line 4
Process exited with code 255. - Output for 4.3.0 - 4.3.1
- Fatal error: Call to undefined function: str_split() in /in/0B5EL on line 4
preferences:
303.23 ms | 401 KiB | 448 Q