可能重复:
如何通过自定义字母对php中的数组进行排序?
例如,我有六个字:
香蕉,苹果,爱,zasca,日本,汽车
有没有办法按字母顺序排序,使用这个自定义顺序:"j,c,z,l,a"?
这里有一些粗略的代码可以帮助您入门:
基本上,它查看数据数组中每个单词的第一个字母,检查它在$sortOrder数组中的位置.出现不在$sortOrder订单末尾的字母.
如果$sortOrder有超过100,000件物品,这将会破裂.可能还有其他漏洞,但我认为这是一个体面的例子usort().
<?php
function getSortOrder($c) {
$sortOrder = array("j","c","z","l","a");
$pos = array_search($c, $sortOrder);
return $pos !== false ? $pos : 99999;
}
function mysort($a, $b) {
if( getSortOrder($a[0]) < getSortOrder($b[0]) ) {
return -1;
}elseif( getSortOrder($a[0]) == getSortOrder($b[0]) ) {
return 0;
}else {
return 1;
}
}
$data = array(
"banana",
"apple",
"love",
"zasca",
"japanese",
"car"
);
echo '<pre>' . print_r($data,true) . '</pre>';
usort($data, "mysort");
echo '<pre>' . print_r($data,true) . '</pre>';
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6118 次 |
| 最近记录: |