php多维数组排序,不区分大小写


php multi-dimensional array sorting with case insensitive

我有一个数组,如下所示。。

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [name] => Henry
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [name] => jack
                )
        )
    [2] => Array
        (
            [0] => Array
                (
                    [name] => Albert
                )
        )
    [3] => Array
        (
            [0] => Array
                (
                    [name] => bunny
                )
        )

我需要在asc&不区分大小写的desc顺序。请帮帮我。

几年前我写了一个php函数,它可以做这样的事情。

function subval_sort($a, $subkey, $reverse = false)
{
    if (!$a)
    {
        return array();
    }
    $b = array();
    foreach ($a as $k => $v)
    {
        $b[$k] = strtolower($v[$subkey]);
    }
    if ($reverse)
    {
        arsort($b);
    }
    else
    {
        asort($b);  
    }
    $c = array();
    foreach ($b as $key => $val)
    {
        $c[] = $a[$key];
    }
    return $c;
}

subval_sort($array, 'name') 一样使用它

排序函数:

使用我的自定义功能来实现您的解决方案它正在工作

    function multisort (&$array, $key) {
$valsort=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
    $valsort[$ii]=$va[$key];
}
asort($valsort);
foreach ($valsort as $ii => $va) {
    $ret[$ii]=$array[$ii];
}
$array=$ret;
}
multisort($multiarr,"order");

希望这对你有帮助。

$array = array(
  array('Henry'),
  array('Michael'),
  array('Steve'),
  array('Daniel'),
  array('Albert'),
);

// Comparison function
function cmp($a, $b) {
    if ($a[0] == $b[0]) {
        return 0;
    }
    return ($a[0] < $b[0]) ? -1 : 1;
}
// Array to be sorted
print_r($array);
// Sort and print the resulting array
uasort($array, 'cmp');
print_r($array);

输出:

Array
(
    [0] => Array
        (
            [0] => Henry
        )
    [1] => Array
        (
            [0] => Michael
        )
    [2] => Array
        (
            [0] => Steve
        )
    [3] => Array
        (
            [0] => Daniel
        )
    [4] => Array
        (
            [0] => Albert
        )
)
Array
(
    [4] => Array
        (
            [0] => Albert
        )
    [3] => Array
        (
            [0] => Daniel
        )
    [0] => Array
        (
            [0] => Henry
        )
    [1] => Array
        (
            [0] => Michael
        )
    [2] => Array
        (
            [0] => Steve
        )
)