php按字母顺序排列多维数组

时间:2014-09-08 05:36:35

标签: php arrays sorting

我有一个用这个创建的多维数组:

for($i=0; $i<count($sub_results);$i++)
{
    $presenters = array(
        'first_name' => $sub_results[$i]['data'][1]['user_value'],
        'last_name' => $sub_results[$i]['data'][2]['user_value'],
        'preferred_name' => $sub_results[$i]['data'][8]['user_value'],
        'organisation' => $sub_results[$i]['data'][11]['user_value'],
        'portraitFile' => $portrait_file_path.$portrait,
        'Abstract1title' => $sub_results[$i]['data'][19]['user_value'],
        'Abstract1accepted' => $sub_results[$i]['data'][18]['user_value'],
        'Abstract1synopsis' => $sub_results[$i]['data'][22]['user_value'],
        'Abstract1format' => $sub_results[$i]['data'][26]['user_value'],
        'Abstract1coauthors' => $sub_results[$i]['data'][20]['user_value'],
        'Abstract2title' => $sub_results[$i]['data'][28]['user_value'],
        'Abstract2accepted' => $sub_results[$i]['data'][27]['user_value'],
        'Abstract2synopsis' => $sub_results[$i]['data'][31]['user_value'],
        'Abstract2format' => $sub_results[$i]['data'][30]['user_value'],
        'Abstract2coauthors' => $sub_results[$i]['data'][29]['user_value']
    );
}

我想通过last_name按字母顺序对结果数组进行排序。这是如何实现的?

提前致谢, emrys

1 个答案:

答案 0 :(得分:0)

这应该为你做。它不区分大小写。如果您对其工作原理有任何疑问,请通知我。请记住,usort通过引用接受数组,这意味着如果要保留原始数组,则需要复制它。

<?php
    usort($array,function($a,$b) {
        $comparison = strcasecmp($a['last_name'],$b['last_name']);
        if ($comparison == 0) return 0;
        return ($comparison < 0) ? -1 : 1;
    });
?>