-2

多次元配列をzからaに並べ替えたい。この関数を使用して、すでにaからzに並べ替えることができます。

function aasort (&$array, $key) {
                $sorter=array();
                $ret=array();
                reset($array);
                foreach ($array as $ii => $va) {
                    $sorter[$ii]=$va[$key];
                }
                asort($sorter);
                foreach ($sorter as $ii => $va) {
                    $ret[$ii]=$array[$ii];
                }
                $array=$ret;
            }

しかし、どうすればそれを元に戻すことができますか?

4

2 に答える 2

1

rsort逆ソートに使用

foreach ($array as $ii => $va) {
    $sorter[$ii]=$va[$key];
}
rsort($sorter);
foreach ($sorter as $ii => $va) {
    $ret[$ii]=$array[$ii];
}
于 2012-12-21T10:44:44.693 に答える
0

ソート関数を変更したくない場合は... array_reverseを使用して最後にそれを逆にすることができます。

これは、多次元配列に再帰的に使用する方法の例です。

function Reverse_Array($array) 
{    $index = 0; 
    foreach ($array as $subarray) 
    {    if (is_array($subarray)) 
        {    $subarray = array_reverse($subarray); 
            $arr = Reverse_Array($subarray); 
            $array[$index] = $arr; 
        } 
        else {$array[$index] = $subarray;} 
        $index++; 
    } 
    return $array; 
} 
于 2012-12-21T10:53:22.080 に答える