// 1
$rand = 'a3ace35a76f868925611a3dac02256da4cc62c2010a480e15c5c1';
echo preg_replace('/\d/', '*', $rand, 1); // a*ace35a76...
// 2 (решение "в лоб", и оттого немного более многострочный вариант)
$rand = 'a3ace35a76f868925611a3dac02256da4cc62c2010a480e15c5c1';
for ($i = 0; $i < strlen($rand); $i++) {
if (is_numeric($rand{$i})) {
$rand{$i} = '*';
break;
}
}
echo $rand; // a*ace35a76...
На основе этого значения надо менять результат внутри callback-функции передаваемой вторым параметром usort()
function array_sort(array &$arr, $key, $sort = 'asc') {
$sort = $sort === 'asc' ? 1 : -1;
usort($arr, function($a, $b) use($sort, $key) {
$a = $a[$key];
$b = $b[$key];
return $sort * ($a === $b ? 0 : $a > $b ? 1 : -1);
});
}