Sim*_*urn 4 php arrays sorting
我有一个数组如下:
Array(
[27] => 'Sarah Green',
[29] => 'Adam Brown',
[68] => 'Fred Able'
);
Run Code Online (Sandbox Code Playgroud)
我想按姓氏排序并保留密钥:
Array(
[68] => 'Fred Able'
[29] => 'Adam Brown',
[27] => 'Sarah Green'
);
Run Code Online (Sandbox Code Playgroud)
有些名字可能有两个以上的名字,但它总是我想要排序的最后一个名字.
在PHP中执行此操作的最佳方法是什么?
您可以使用该uasort
功能,该功能允许您指定自定义排序方法,同时还保留键:
<?php
// A function to sort by last name.
function lastNameSort($a, $b) {
$aLast = end(explode(' ', $a));
$bLast = end(explode(' ', $b));
return strcasecmp($aLast, $bLast);
}
// The array of data.
$array = array(
27 => 'Sarah Green',
29 => 'Adam Brown',
68 => 'Fred Able'
);
// Perform the sort:
uasort($array, 'lastNameSort');
// Print the result:
print_r($array);
?>
Run Code Online (Sandbox Code Playgroud)