2012-10-24 1 views
1

저는이 작업을 잠시 동안 해왔습니다. PHP에서 다중 레벨 배열을보기가 쉽지 않습니다. 여기 내 코드입니다 :php와 usort를 사용하여 다차원 배열을 다중 레벨 목록으로 바꾸는 각도 사용

Array 
(
[0]=array(
    "level"=>'Level1', 
    "id"=>1, 
    "title"=>"Home", 
    "order"=>"0" 
    ); 
[1]=array(
    "level"=>'Level1', 
    "id"=>"355", 
    "title"=>"About Us", 
    "order"=>"21" 
); 
[2]=array(
    "level"=>'Level1', 
    "id"=>"10", 
    "title"=>"Test", 
    "order"=>"58" 
); 
[3]=array(
    "level"=>'Level2', 
    "id"=>13, 
    "title"=>"Our Team", 
    "order"=>"11", 
    "parent_id"=>"355" 
); 
    [4]=array(
    "level"=>'Level2', 
    "id"=>12, 
    "title"=>"The In Joke", 
    "order"=>"12", 
    "parent_id"=>"355" 
); 
    [5]=array(
    "level"=>'Level2', 
    "id"=>11, 
    "title"=>"Our History", 
    "order"=>"13", 
    "parent_id"=>"355" 
)); 
> 



    1-Home 
    2-about us 
    3-Our Team 
    4-The In Joke 
    5-Our History 
    6-Test 

내가 다단계 부모의 아이 배열을 가지고 있고 결과는 내가 usort()을 사용하는 방법을 이해하지 못했다 대해에 따라 정렬 할 필요가있다.

+3

우리가 (대신 결과의) 코드를 볼 수 있을까요? – SomeKittens

답변

0

배열을 정렬하려면 usort()을 사용하려면 사용자 정의 정렬 기능을 작성해야합니다. 당신은 비교를 위해 $array['title'] 값을보고 싶기 때문에, 당신은 당신의 비교 함수에서이 배열 인덱스를 사용합니다 :

$array = array(
    array(
     "level"=>'Level1', 
     "id"=>1, 
     "title"=>"Home", 
     "order"=>"0" 
    ), 
    // your additional multidimensional array values... 
); 

// function for `usort()` - $a and $b are both arrays, you can look at their values for sorting 
function compare($a, $b){ 
    // If the values are the same, return 0 
    if ($a['title'] == $b['title']) return 0; 
    // if the title of $a is less than $b return -1, otherwise 1 
    return ($a['title'] < $b['title']) ? -1 : 1; 
} 

usort($array, 'compare'); 
관련 문제