【发布时间】:2019-05-19 04:06:24
【问题描述】:
大家好,我是 PHP 的初学者,希望在性能方面以最佳方式转换此数组:
$old = array(
20 =>
array(
'name' => 'Heels',
'path' => '1/2/10/15/20',
),
15 =>
array(
'name' => 'Sandals',
'path' => '1/2/80/96/15',
),
10 =>
array(
'name' => 'Trainers',
'path' => '1/2/80/96/10',
),
);
到这里:
$new = array(
20 =>
array(
'value' => 20,
'label' => 'Trainers > Sandals > Heels',
),
);
肯定会有大量记录爆炸路径并使用 id 映射它们会降低性能,只是想知道是否有更有效的方法,如果可能,谢谢。
【问题讨论】:
-
如果
path(你解释创建亲戚)不同,我迷失了价值20的来源?请提供输入和输出的最小、完整或可验证示例。 -
20 是每条路径的结束编号,但它也是关键,因此如果有意义,最终结果需要排除每条路径中的每个键名称值 1 和 2。跨度>
-
@NewHorizon 这没有意义。你能在这里澄清你的逻辑吗?您说“20 是每条路径的结束编号”,但
'1/2/80/96/15'中没有 20。 -
这些只是虚拟数据的假数字,但所有内容都会匹配最后三个数字。
-
提问时发布正确的数据
标签: php arrays foreach mapping