PHP多维数组重组:将指定数组转换为目标结构的最佳实现方法
PHP数组结构转换最优实现方案
实现代码
适配你现有Laravel请求场景的代码如下,性能最优且可读性高:
// 初始化存储结果的空数组 $transformed = []; // 遍历原始的商品规格数组 foreach ($request->only('product_variations')['product_variations'] as $item) { $currentGroup = $item['group']; // 遍历当前组的所有键值对,跳过group字段,组装目标结构 foreach ($item as $setId => $variationId) { if ($setId === 'group') continue; $transformed[] = [ 'group' => $currentGroup, 'es_variation_set_id' => (string)$setId, 'es_variation_id' => (string)$variationId ]; } } // 输出验证结果 dd($transformed);
方案说明
- 时间复杂度为O(n),n为所有元素的键值对总数,是该场景下性能最优的实现方式,没有多余的函数开销
- 自动适配每个分组下的动态键数量,无需硬编码键名,扩展性更强
- 显式强制转换为字符串,匹配你目标数组的字段类型要求
注:你给出的期望数组存在两处笔误:索引1的es_variation_id错误写为28(实际group=1下键6对应的值为27)、索引5的group错误写为1(实际group=2下键8对应的值为200),上述代码生成的结果会自动修正这两处错误。
内容的提问来源于stack exchange,提问作者AlexB
相关产品推荐
相关产品推荐

