Aci*_*don 3 php arrays sorting
我有两个PHP数组.并为每个阵列设置不同的排序问题:
1)首先包含域名列表:
values[0] = "absd.com";
values[1] = "bfhgj.org";
values[2] = "sdfgh.net";
values[3] = "sdff.com";
values[4] = "jkuyh.ca";
Run Code Online (Sandbox Code Playgroud)
我需要按DOMAIN值按字母顺序对这个数组进行排序,换句话说,按'.'后的值排序,所以排序的域将如下:
values[0] = "jkuyh.ca";
values[1] = "absd.com";
values[2] = "sdff.com";
values[3] = "sdfgh.net";
values[4] = "bfhgj.org";
Run Code Online (Sandbox Code Playgroud)
2)我还有第二个包含"双"域值的数组:
values[0] = "lkjhg.org.au";
values[1] = "bfhgj.co.uk";
values[2] = "sdfgh.org.uk";
Run Code Online (Sandbox Code Playgroud)
我需要按DOUBLE DOMAIN值按字母顺序对此数组进行排序,换句话说,按"."的第一个实例后的值排序.在域中,所以排序域将如下:
values[1] = "bfhgj.co.uk";
values[0] = "lkjhg.org.au";
values[2] = "sdfgh.org.uk";
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?sort()方法仅根据第一个字母排序...
usort 是答案.
试试这个:
usort($values,function($a,$b) {
return strcasecmp(
explode(".",$a,2)[1],
explode(".",$b,2)[1]
);
});
Run Code Online (Sandbox Code Playgroud)
(请注意explode,如果您仍在使用PHP 5.3或更早版本,则需要将结果存储在临时变量中并单独访问它)