PHP关联数组转换为带动态键名的指定结构的相关问题
实现代码
// 定义原始数组 $originArr = [ 'rank' => [1, 2, 3], 'name' => ['Hideki', 'Rory', 'Sam'], 'money' => ['$100', '$200', '$500'] ]; // 动态提取所有非name的字段,无需硬编码rank、money $targetFields = array_diff(array_keys($originArr), ['name']); $res = []; // 按索引遍历组装数据 foreach ($originArr['name'] as $idx => $userName) { foreach ($targetFields as $field) { $res[$userName][$field] = $originArr[$field][$idx]; } } // 输出验证结果 print_r($res);
方案说明
- 完全满足字段动态要求:自动识别原始数组中除
name外的所有字段作为目标子数组的键,即使后续原始数组新增其他维度字段,无需修改代码即可完成转换。 - 兼容不同长度的对齐数组,只要原始数组各字段的索引对应关系正确,即可正常组装。
内容的提问来源于stack exchange,提问作者krisgiyan
相关产品推荐
相关产品推荐

