PHP Order数组基于元素依赖

时间:2016-09-26 20:21:32

标签: php arrays sorting dependencies

相当难以解释,但实际上我有一系列具有ID的项目,其中可以包含其他数组项的ID列表。例如

$items = [
   [id: 'one', deps: ['three']],
   [id: 'two'],
   [id: 'three', deps: ['four', 'two']],
   [id: 'four']
];

正如你在这里看到的,一个取决于三个,三个取决于四个和两个。

我需要获取一个新数组,它按顺序包含这些项目 - 以便按顺序列出依赖项。所以上面的数组将转换为

$items = [
   [id: 'four'],
   [id: 'two'],
   [id: 'three', deps: ['four', 'two']],
   [id: 'one', deps: ['three']]
];

我将如何完成此操作?我尝试了各种各样的循环检查项目位置,但不能破解它。

由于

更新有些人说它是THIS的重复问题,但主要区别在于上面的例子有多个依赖关系 - 而提到的线程只适用于单个字符串依赖

1 个答案:

答案 0 :(得分:3)

你可以使用这样的函数,迭代直到满足所有依赖关系,或者不再能解析依赖关系:

message += "<a href='/"+ employee.title +"'>"+ employee.title +"</a><br>";