public function compare($a, $b)
{
// find first difference
$cmp1 = null;
$cmp2 = null;
$min = min(strlen($a), strlen($b));
for ($i = 0; $i < $min; $i++) {
if ($a[$i] != $b[$i]) {
$cmp1 = $a[$i];
$cmp2 = $b[$i];
break;
}
}
if ($cmp1 === null && $cmp2 === null) {
return 0;
}
return $this->getAscii($cmp1) - $this->getAscii($cmp2);
}