2012-04-23 47 views
1

即時通訊使用cakephp 1.3。我嘗試使用Set :: sort()函數對數組進行排序,但不工作..任何想法如何做到這一點?下面是數組即時使用。Cakephp Set :: sort()

Array (
    [0] => Array 
     (
      [Group] => Array 
       (
        [name] => Team A 
       ) 

      [Members] => Array 
       (
        [0] => Array 
         (
          [name] => George 
          [Code] => Array 
           (
            [name] => C 
           ) 

         ) 

        [1] => Array 
         (
          [name] => Hall 
          [Code] => Array 
           (
            [name] => A 
           ) 

         ) 

        [2] => Array 
         (
          [name] => Mike 
          [Code] => Array 
           (
            [name] => B 
           ) 

         ) 

       ) 

     ) 

IM排序使用此陣列:

$data = Set::sort($data, '{n}.Members.{n}.Code.name', 'asc'); 

IM期待像這樣的輸出:

Array 
(
    [0] => Array 
     (
      [Group] => Array 
       (
        [name] => Team A 
       ) 

      [Members] => Array 
       (
        [0] => Array 
         (
          [name] => Hall 
          [Code] => Array 
           (
            [name] => A 
           ) 

         ) 


        [1] => Array 
         (
          [name] => Mike 
          [Code] => Array 
           (
            [name] => B 
           ) 

         ) 

        [2] => Array 
         (
          [name] => George 
          [Code] => Array 
           (
            [name] => C 
           ) 

         ) 


       ) 

     ) 

分選不參與effect.how我可以做到這一點?任何想法?

回答

1

只使用Set::sort()它不可行。你可以這樣:

$result = array(); 
    foreach($a as $arr) { 
     $res = Set::sort($arr['Member'], '{n}.Code.name', 'asc'); 
     $result[] = array(
        'Group' => $arr['Group'], 
        'Member' => $res 
       );    
    } 
    pr($result); 
+0

@SAN + 1爲最佳解決方案... – Codegiant 2014-03-02 17:49:48