PHP中令人困惑的数组排序

问题描述

| 用String1按字母顺序对数组进行排序的最佳方法是什么?密钥编号应始终为数字。 之前:
Key     | String1    Int1 String2 Int2
--------------------------------------
0       | Alligator  3    Cake    7
1       | Crocodile  17   foobar  9
2       | Bear       1    test    6
3       | Aardvark   2    lolwhat 3
后:
Key     | String1    Int1 String2 Int2
--------------------------------------
0       | Aardvark   2    lolwhat 3
1       | Alligator  3    Cake    7
2       | Bear       1    test    6
3       | Crocodile  17   foobar  9     
本质上,我有一个包含一堆数组的数组,如何使用特定元素按字母顺序对第一个数组中的这些数组进行排序?     

解决方法

        您可能想要
usort
,它使您可以定义比较器回调函数。 http://www.php.net/manual/zh/function.usort.php     ,        您将需要如下比较功能:
function compare($a,$b)
{
    if ($a[\'String1\'] < $b[\'String1\'])
        return -1;
    if ($a[\'String1\'] > $b[\'String1\'])
        return 1; 

    // At this point the strings are identical and you can go into 
    // a second value to compare something else if you wish 
    if ($a[\'String2\'] < $b[\'String2\'])
        return -1;
    if ($a[\'String2\'] > $b[\'String2\'])
        return 1;

    // as long as you cover the three situations you are fine. 
    return 0
}
    ,        
function str1cmp($a,$b) {
    return strcmp($a[\'string1\'],$b[\'string1\']);
}

usort($array,\'str1cmp\');