【发布时间】:2015-07-16 16:23:51
【问题描述】:
我有平面数据:
$flatLists = [
[
'task',
'updater',
'updater_xml',
'some_customer',
'some_customer_de',
],
[
'task',
'updater',
'updater_xml',
'some_customer',
'some_customer_fr',
],
[
'task',
'updater',
'updater_json',
'yet_another_customer',
'yet_another_customer_us',
],
[
'task',
'updater',
'updater_json',
'updater_flatfile',
],
];
它代表一个遗产结构,第一个元素是第一个父元素,每个条目都是一个子元素。
我现在想把这个平面数组转换成一个嵌套数组,这样结果看起来像:
$expectedArray = [
'task' => [
'updater' => [
'updater_xml' => [
'some_customer' => [
'some_customer_de',
'some_customer_fr',
],
],
'updater_json' => [
'yet_another_customer' => [
'yet_another_customer_us',
],
'updater_flatfile',
],
],
],
];
我已经尝试通过foreach、for 以多种方式迭代平面列表,但没有什么可以接近工作,现在我的大脑受伤了。
我不希望有一个有效的代码示例,但我希望能提供一些有关如何解决此问题的提示,并希望我能发布我自己的答案。现在,我被困住了。
【问题讨论】:
-
平面列表中的每个条目是否总是有 4/5 个元素?还是可以是任意数量的元素?
-
@MariM 理论上条目的数量可能是无穷无尽的。
-
叶子是否应该是值而不是键?
-
@Marek 我真的不介意它们是如何存储的。最后一个键既可以是值也可以是键,最后我确实介意维护树结构。
标签: php arrays sorting multidimensional-array tree