Array
(
  [0] => Array
  (
  [groupname] => 朋友
  [list] => Array
  (
  [0] => Array
  (
  [displayname] => im
  [maritalstatus] => 0
  )  [1] => Array
  (
  [displayname] => 网球
  [maritalstatus] => 0
  )  [2] => Array
  (
  [displayname] => bb
  [maritalstatus] => 0
  )  [3] => Array
  (
  [displayname] => cc
  [maritalstatus] => 0
  )  [4] => Array
  (
  [displayname] => 爱德
  [maritalstatus] => 0
  )  )  [parentiid] =>  
  )    
  [1] => Array
  (
  [groupname] =>车辆
  [list] => Array
  (
  )  [parentiid] => Array
  (
  [0] => Array
  (
  [displayname] =>货车
  [maritalstatus] => 0  )
  [1] => Array
  (
  [displayname] => 班车
  [maritalstatus] => 0  )  )  )    
)给他做排序,排序的规则是按照displayname的音序a-z进行排序。同一音序下,先显示英文姓名,再显示中文姓名,都是按照a-z进行排序。排序后的为:
Array
(
  [0] => Array
  (
  [groupname] => 朋友
  [list] => Array
  (
    
  [0] => Array
  (
  [displayname] => bb
  [maritalstatus] => 0
  )  [1] => Array
  (
  [displayname] => cc
  [maritalstatus] => 0
  )
[2] => Array
  (
  [displayname] => im
  [maritalstatus] => 0
  )  [3] => Array
  (
  [displayname] => 爱德
  [maritalstatus] => 0
  )
[4] => Array
  (
  [displayname] => 网球
  [maritalstatus] => 0
  )  )  [parentiid] =>  
  )    
  [1] => Array
  (
  [groupname] =>车辆
  [list] => Array
  (
  )  [parentiid] => Array
  (
  [0] => Array
  (
  [displayname] => 班车
  [maritalstatus] => 0  )
  [1] => Array
  (
  [displayname] =>货车
  [maritalstatus] => 0  )
  )  )    
)
求大侠告知一下

解决方案 »

  1.   

    将要排序的displayname的值设为key,再用数组排序函数排序
      

  2.   


    $array=array(
    0=>array(
    "groupname"=>"朋友",
    "list"=>array(
      0 => Array(
      'displayname' =>'im',
      'maritalstatus' => 0
      ),   1 => Array(
      'displayname' => '网球',
      'maritalstatus' => 0
      ),   2 => Array(
      'displayname' => 'bb',
      'maritalstatus' => 0
      ),   3 => Array(
      'displayname' => 'cc',
      'maritalstatus' => 0
      ),   4 => Array(
      'displayname' => '爱德',
      'maritalstatus' => 0
      ),
    )
    ),
    1=>array(
    "groupname"=>"车辆",
    "list"=>array(
      0 => Array(
      'displayname' =>'货车',
      'maritalstatus' => 0
      ),   1 => Array(
      'displayname' => '班车',
      'maritalstatus' => 0
      ),   2 => Array(
      'displayname' => '自行车',
      'maritalstatus' => 0
      ),
    )
    )
    );
    $result=$array;
    foreach($array as $key=>$arr){
    sort($array[$key]['list']);
    }
    sort($array);
    print_r($array);