2017-12-18 9 views
-1
によってPHPの多次元アレイ配列

私が見えるの配列を持っているように私は部屋名で、その後、種類によって最初の配列をソートする必要が ソート二つの値

Array 
(
[0] => Array 
    (
     [room] => kh-332 
     [type] => Computer Lab 
     [description] => K Lab 
     [availability] => available 

    ) 

[1] => Array 
    (
     [room] => mh-112 
     [type] => Conference Room 
     [description] => Chute Room 
     [availability] => conflict 
     ) 

[2] => Array 
    (
     [room] => mh-227 
     [type] => Classroom 
     [description] => EMCC Class 
     [availability] => available 
     ) 
[3] => Array 
    (
     [room] => mh-500 
     [type] => Lab 
     [description] => Auto Lab 
     [availability] => available 
     ) 
[4] => Array 
    (
     [room] => mh-125 
     [type] => Classroom 
     [description] => Accuplacer Testing 
     [availability] => conflict 
     ) 
[5] => Array 
    (
     [room] => mh-225 
     [type] => Computer Lab 
     [description] => Kaplan Testing 
     [availability] => available 
     ) 
[6] => Array 
    (
     [room] => mh-111 
     [type] => Conference Room 
     [description] => Video Conference 
     [availability] => conflict 
     ) 
) 

下になるようにコンピュータラボのすべてたとえば、部屋のアルファベット順にソートされた配列にグループ化されます。私は以下の関数を使って型を並べ替えるのですが、型のグループを部屋ごとにアルファベット順にソートするのにはいくつかの問題があります。どんな支援も大歓迎です。

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; 
} 
+1

[** 'usort()' **](http://php.net/manual/en/function.usort.php)を試してください。例2を見てください – Phiter

答えて

-1

私は(usortに掘りもう少しやった)、私は私の質問への答えを見つけ、これは働いていました。

usort($merge,function($a,$b){ 
    $c = strcmp($a['type'],$b['type']); 
    $c .= strcmp($a['availability'],$b['availability']); 
    $c .= strcmp($a['room'],$b['room']); 
    return $c; 
});