如何在字符串中的某个字符后按字母顺序对php数组进行排序

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()方法仅根据第一个字母排序...

Nie*_*sol 6

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或更早版本,则需要将结果存储在临时变量中并单独访问它)