data structure looks like this. {id:parentIds} id is unique, and parentIds stores the ids. of the superior. For example, if the id=9 parentIds under the id=5 under the parent class is id=1, the parentIds at the highest level is 0, so how do you sort it?
for example, the current data is:
array(
    "1"=>"0",
    "2"=>"0",
    "3"=>"0",
    "4"=>"1",
    "5"=>"1",
    "6"=>"2",
    "7"=>"1",
    "8"=>"1",
    "9"=>"2",
    "10"=>"3",
    "11"=>"3",
    "12"=>"2",
    "13"=>"1",
    "14"=>"1,8",
    "15"=>"1,8,14",
    "16"=>"2,9",
    "17"=>"1,8",
    "18"=>"3,10",
    "19"=>"3,11",
    "20"=>"3,10,18",
    "21"=>"1,8,14,15",
    "22"=>"1,8,14");after processing (siblings may not be in order):
array(
    "1"=>"0",
    "4"=>"1",
    "5"=>"1",
    "7"=>"1",
    "8"=>"1",
    "14"=>"1,8",
    "15"=>"1,8,14",
    "22"=>"1,8,14");
    "21"=>"1,8,14,15",
    "17"=>"1,8",
    "13"=>"1",
    "2"=>"0",
    "6"=>"2",
    "9"=>"2",
    "16"=>"2,9",
    "12"=>"2",
    "3"=>"0",
    "10"=>"3",
    "18"=>"3,10",
    "20"=>"3,10,18",
    "11"=>"3",
    "19"=>"3,11",