PHP如何将多维数组首个子数组值设为其余子数组的关联键?
实现方法
直接使用PHP原生函数array_combine + array_slice组合即可完成转换,无需自定义复杂逻辑:
示例代码
// 你的原始数组 $original = [ ['name', 'value'], ['John Doe', 'Married'], ['John Wick', 'Single'] ]; // 取出第一组作为关联键 $keys = $original[0]; // 取出从第二个元素开始的所有数据行 $rows = array_slice($original, 1); // 遍历组装关联数组 $result = []; foreach ($rows as $row) { // 确保键值数量匹配时才组装,避免报错 if (count($keys) === count($row)) { $result[] = array_combine($keys, $row); } } // 输出结果 print_r($result);
输出结果
和你需要的结构完全一致:
Array ( [0] => Array ( [name] => John Doe [value] => Married ) [1] => Array ( [name] => John Wick [value] => Single ) )
注意事项
如果后续子数组的元素个数和首行键数组的元素个数不一致,array_combine会返回false,上述代码中的判断逻辑可以过滤掉不匹配的行,避免报错。
内容的提问来源于stack exchange,提问作者dwijonarko
相关产品推荐
相关产品推荐

