0

重複の可能性:
PHP での連想配列のソート

次のような Jsion 配列があります。

{
    devices: [
        {
            name: " Server 00 ",
            ip: " 172.20.10.10 ",
            status: 0
        },
        {
            name: " Server  10 ",
            ip: " 172.20.10.12 ",
            status: 0
        },
        {
            name: " Server  01 ",
            ip: " 172.20.10.13 ",
            status: 1
        },
        {
            name: " Server 11 ",
            ip: " 172.20.10.15 ",
            status: 0
        }
    ]
}

これをHTMLテーブルに変換するためにPHPを使用していますが、アルファベット順にしたいと思います。これが私のPHPコードです:

    private static function toHtml($output, $rmkeyworkxen = false) {
    $return = '';

    $devices = json_decode($output, true)['devices'];

    foreach($devices as $device) {
        if(startsWith(trim($device['name']), "Xen")&&$rmkeyworkxen == true) {
            $return .= '';
        }
        else {
            if($device['status'] == 0) {
                $state = "Online";
                $return .= "<tr class=\"success\"><td>";
            }
            else {
                $state = "Offline";
                $return .= "<tr class=\"error\"><td>";
            }

            $return .= $device['name'];
            $return .= '</td><td>';
            $return .= $device['ip'];
            $return .= '</td><td>';
            $return .= $state;
            $return .= '</td></tr>';
        }
    }
    return $return;
}

配列をデバイスの名前で並べ替えるにはどうすればよいですか?

4

1 に答える 1

8
usort($devices,function($a,$b) {return strnatcasecmp($a['name'],$b['name']);});

ドキュメント: usort()strnatcasecmp()

于 2012-12-18T22:31:30.273 に答える