PHP - 按字符串排序多维数组

时间:2018-02-07 10:59:25

标签: php

我有一个名为“$ myarray”的数组,如下所示:

[0] => Array
    (
        [PrinterID] => 4
        [PrinterName] => PRT04_GL
        [UserID] => 1
        [isDefaultPrinter] => 0
        [isMapped] => 0
    )

[1] => Array
    (
        [PrinterID] => 1
        [PrinterName] => PRT01_Zentral
        [UserID] => 
        [isDefaultPrinter] => 0
        [isMapped] => 0
    )

[2] => Array
    (
        [PrinterID] => 2
        [PrinterName] => PRT02_BH
        [UserID] => 
        [isDefaultPrinter] => 0
        [isMapped] => 0
    )

[3] => Array
    (
        [PrinterID] => 3
        [PrinterName] => PRT03_EDV
        [UserID] => 
        [isDefaultPrinter] => 0
        [isMapped] => 1
    )

我想按[“PrinterName”]对数据进行排序。想要的结果将是:

[0] => Array
    (
        [PrinterID] => 1
        [PrinterName] => PRT01_Zentral
        [UserID] => 
        [isDefaultPrinter] => 0
        [isMapped] => 0
    )

[1] => Array
    (
        [PrinterID] => 2
        [PrinterName] => PRT02_BH
        [UserID] => 
        [isDefaultPrinter] => 0
        [isMapped] => 0
    )

[2] => Array
    (
        [PrinterID] => 3
        [PrinterName] => PRT03_EDV
        [UserID] => 
        [isDefaultPrinter] => 0
        [isMapped] => 1
    )

[3] => Array
    (
        [PrinterID] => 4
        [PrinterName] => PRT04_GL
        [UserID] => 1
        [isDefaultPrinter] => 0
        [isMapped] => 0
    )       

根据this示例,我尝试了以下内容:

uasort($myarray, 'sort_by_order');
function sort_by_order ($a, $b) {
  return $a['PrinterName'] - $b['PrinterName'];
}

这不起作用。我收到的错误如“遇到非数字值...”,当然因为我的值是字符串而且函数是数值。

如何对数组进行排序?

谢谢!

修改 我想我确实找到了解决方案here。我用过这个似乎有效:

uasort($myarray, 'sort_by_order');
function sort_by_order ( $a, $b ) { return strcmp($a['PrinterName'], $b['PrinterName']); }

1 个答案:

答案 0 :(得分:-1)

请尝试使用$ a ['PrinterName']> $ B [ '的PrinterName']

它将比较值