使用名称对数组进行排序
我有一个数组。
array(0 => Mr. Bala ,1 => Mr. Santhosh, 2 => Mrs. Camel,3 => Mrs. Vinoth);
仅根据名称按升序对其进行排序
我的预期输出是
array(
0 => Mr. Bala,
1 => Mrs. Camel,
2 => Mr. Santhosh,
3 => Mr. Vinoth,
);
最佳答案
只是我自己的旋转,应该更灵活一点。 Working Demo
usort($data, 'sortByName');
function sortByName($a, $b) {
$remove = [' ', '.', 'Mrs', 'Miss', 'Ms', 'Master', 'Dr', 'Mr'];
$a = str_replace($remove, '', $a);
$b = str_replace($remove, '', $b);
return strcasecmp($a, $b);
}
唯一需要注意的是
$titles
需要按特定顺序排列,因为 Mrs
必须始终在 Mr
之前,因为 Mr
在 Mrs
内,因此如果您切换顺序,则 Mr
可能会被带走,留下流氓 S
相信这应该适合你想要的,任何问题让我知道。
编辑 更新。
关于php - 如何用PHP对数组进行排序,忽略(Mr, Mrs) 或某些文章,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37278102/