2011-11-02 3 views
0

안녕 나는 PHP에서 배열의 배열을 정렬하려면 어떻게해야합니까?

[1] => Array 
    (
     [menuName] => Apps 
     [menuUrl] => /Apps 
     [Invisible_Mode] => 
     [subMenu] => Array 
      (
       [Collaboration] => Array 
        (
         [subMenuName] => Collaboration 
         [subMenuUrl] => /Apps/Collaboration 
         [subitemCount] => 5 
         [Invisible_Mode] => 
        ) 

       [Sales] => Array 
        (
         [subMenuName] => Sales 
         [subMenuUrl] => /Apps/Sales 
         [subitemCount] => 11 
         [Invisible_Mode] => 
        ) 

       [Project Management] => Array 
        (
         [subMenuName] => Project Management 
         [subMenuUrl] => /Apps/Project-Management 
         [subitemCount] => 5 
         [Invisible_Mode] => 
        ) 

       [Human Resources] => Array 
        (
         [subMenuName] => Human Resources 
         [subMenuUrl] => /Apps/Human-Resources 
         [subitemCount] => 7 
         [Invisible_Mode] => 
        ) 

       [Marketing] => Array 
        (
         [subMenuName] => Marketing 
         [subMenuUrl] => /Apps/Marketing 
         [subitemCount] => 8 
         [Invisible_Mode] => 
        ))) 

어떻게 내가이 작업을 수행 할 수 있습니다, 내가 아래처럼 배열 (위의 배열을 사용)가 필요합니다
[1] => Array 
    (
     [menuName] => Apps 
     [menuUrl] => /Apps 
     [Invisible_Mode] => 
     [subMenu] => Array 
      (
       [0] => Array 
        (
         [subMenuName] => Collaboration 
         [subMenuUrl] => /Apps/Collaboration 
         [subitemCount] => 5 
         [Invisible_Mode] => 
        ) 

       [1] => Array 
        (
         [subMenuName] => Sales 
         [subMenuUrl] => /Apps/Sales 
         [subitemCount] => 11 
         [Invisible_Mode] => 
        ) 

       [2] => Array 
        (
         [subMenuName] => Project Management 
         [subMenuUrl] => /Apps/Project-Management 
         [subitemCount] => 5 
         [Invisible_Mode] => 
        ) 

       [3] => Array 
        (
         [subMenuName] => Human Resources 
         [subMenuUrl] => /Apps/Human-Resources 
         [subitemCount] => 7 
         [Invisible_Mode] => 
        ) 

       [4] => Array 
        (
         [subMenuName] => Marketing 
         [subMenuUrl] => /Apps/Marketing 
         [subitemCount] => 8 
         [Invisible_Mode] => 
        ))) 

strustrue

아래에있다?

+0

대부분의 답변 usort' '와 함께 작업에게의 발견. – xdazz

+1

어떤 방식으로 정렬하고 있습니까? 내가 볼 수있는 유일한 차이점은 숫자 대신 연관 키를 사용한다는 것입니다. – Marcus

+0

[PHP 내부 정렬을 사용하는 PHP 배열 정렬] 가능한 복제본 (http://stackoverflow.com/questions/3804278/php-array-sort-using-innervalue) – hakre

답변

1

정렬은 필요 없지만 다시 색인 생성하는 것처럼 보입니다. 그리고 그 중 하나.

이 코드를보십시오 :

$original_array = array(
    // your array 
); 

$new_array = array(); 
foreach ($original_array as $menu_item) 
{ 
    if (!empty($menu_item['subMenu'])) 
    { 
     $reindexed_sub_menu = array(); 
     foreach ($menu_item['subMenu'] as $sub_menu_item) 
     { 
      $reindexed_sub_menu[$sub_menu_item['subMenuName']] = $sub_menu_item; 
     } 

     // if you need to sort submenu by new key enable next line 
     // ksort($reindexed_sub_menu); 

     $menu_item['subMenu'] = $reindexed_sub_menu; 
    } 

    $new_array[] = $menu_item; 
} 

// new array is in $new_array :) 
0

내가 대답

foreach($menuCategories as $menuc1) { 
            foreach($menuc1['subMenu'] as $mc1) { 
             $key = $mc1['subMenuName']; 
             $final[$key] = $mc1; 
             ksort($final); 
            } 
            } 

관련 문제