在php中按两个以上字段对多维数组排序

在php中按两个以上字段对多维数组排序,php,Php,我想按两个字段对数组进行排序。我的意思是说我有一个数组,比如:- Array ( [0] => Array ( [name] => abc [url] => http://127.0.0.1/abc/img1.png [count] => 69 [img] => accessoire-sets_1.jpg ) [1] => Array ( [name]

我想按两个字段对数组进行排序。我的意思是说我有一个数组,比如:-

Array
 (
[0] => Array
    (
        [name] => abc
        [url] => http://127.0.0.1/abc/img1.png
        [count] => 69
        [img] => accessoire-sets_1.jpg
    )

[1] => Array
    (
        [name] => abc2
        [url] => http://127.0.0.1/abc/img12.png
        [count] => 73
        [img] => 
    )

[2] => Array
    (
        [name] => abc45
        [url] => http://127.0.0.1/abc/img122.png
        [count] => 15
        [img] => tomahawk-kopen_1.png
    )

[3] => Array
    (
        [name] => zyz
        [url] => http://127.0.0.1/abc/img22.png
        [count] => 168
        [img] => 
    )

[4] => Array
    (
        [name] => lmn
        [url] => http://127.0.0.1/abc/img1222.png
        [count] => 10
        [img] => 
    )

[5] => Array
    (
        [name] => qqq
        [url] => http://127.0.0.1/abc/img1222.png
        [count] => 70
        [img] => 
    )

[6] => Array
    (
        [name] => dsa
        [url] => http://127.0.0.1/abc/img1112.png
        [count] => 43
        [img] => 
    )

[7] => Array
    (
        [name] => wer
        [url] => http://127.0.0.1/abc/img172.png
        [count] => 228
        [img] => 
    )

[8] => Array
    (
        [name] => hhh
        [url] => http://127.0.0.1/abc/img126.png
        [count] => 36
        [img] => 
    )

[9] => Array
    (
        [name] => rrrt
        [url] => http://127.0.0.1/abc/img12.png
        [count] => 51
        [img] => 
    )

[10] => Array
    (
        [name] => yyy
        [url] => http://127.0.0.1/abc/img12.png
        [count] => 22
        [img] => 
    )

[11] => Array
    (
        [name] => cxz
        [url] => http://127.0.0.1/abc/img12.png
        [count] => 41
        [img] => 
    )

[12] => Array
    (
        [name] => tre
        [url] => http://127.0.0.1/abc/img12.png
        [count] => 32
        [img] => 
    )

[13] => Array
    (
        [name] => fds
        [url] => http://127.0.0.1/abc/img12.png
        [count] => 10
        [img] => 
    )

    )
不带图像的阵列(字段“img”)应始终放置在带图像的阵列下方。在此之后,将根据数组中的产品数量(字段计数)进行排序

意味着我必须首先根据img显示排序数组,然后再显示计数

我正在使用

usort( $childLinkCats, 'sortempty' );`

function sortempty( $a, $b ) {
    return empty( $a['img'] );
}
它将显示图像值高于包含空值的数组

并通过我使用的计数进行排序

usort($childLinkCats, "_sortByCount");
function _sortByCount($a, $b) {
    return strnatcmp($a['count'], $b['count']);
}
按计数它将短缺


但我面临的问题是,一次只能工作一个,但我必须同时使用这两个,请帮助我

编写一个调用两个比较函数的函数:

usort($childLinkCats, function($a, $b) {
    if (empty($a['img']) == empty($b['img'])) {
        return _sortByCount($a, $b);
    } else {
        return sortempty($a, $b);
    }
});

您需要确保
\u sortByCount
sortempty
返回正确的值。比较函数必须返回-1、0或1,而不是true或false。

比较函数应返回<0、0或>0,您只是返回一个布尔值。它将仅按图像空值进行缩短。我想同时使用这两种排序,如何获得所需结果。它仅按计数排序。首先,我想用img值显示数组,并按计数排序,然后它将用img值显示数组为null,这也按计数排序。我想要求会很明确,我忘了使用
['img']
来获取图像。