首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php和usort使用angular将多维数组转换为多级列表

使用php和usort使用angular将多维数组转换为多级列表
EN

Stack Overflow用户
提问于 2012-10-24 21:35:16
回答 1查看 190关注 0票数 1

我已经在这方面工作了一段时间。我发现php中的多级数组并不是那么简单。下面是我的代码:

代码语言:javascript
复制
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()

EN

回答 1

Stack Overflow用户

发布于 2012-10-24 21:38:19

要使用usort()对数组进行排序,您需要编写一个自定义排序函数。因为要查看比较的$array['title']值,所以需要在比较函数中使用此数组索引:

代码语言:javascript
复制
$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');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13050409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档