如何将存储键值对字符串的数组转换为对应键值的关联数组
实现数组键值转换的方法
你给出的数组写法符合PHP的数组语法,以下是PHP版本的实现方案,其他编程语言逻辑大同小异,可参考实现:
基础实现(按冒号分割)
// 原数组 $oldArr = [ 0 => '"number1":1', 1 => '"number2":2', 2 => '"number3":3', ]; $newArr = []; foreach ($oldArr as $item) { // 限制仅分割为2部分,避免值中存在冒号时拆分错误 list($rawKey, $rawValue) = explode(':', $item, 2); // 移除键两端的双引号 $key = trim($rawKey, '"'); // 值转为整数类型,若有小数需求可替换为(float) $value = (int)$rawValue; $newArr[$key] = $value; }
执行后$newArr就是你需要的目标数组结构。
高容错正则实现
如果原字符串可能存在多余空格、特殊字符等情况,推荐用正则匹配提取内容,稳定性更强:
foreach ($oldArr as $item) { preg_match('/"([^"]+)":(\d+)/', $item, $matches); $newArr[$matches[1]] = (int)$matches[2]; }
JavaScript版本实现
如果你使用的是JavaScript,可参考以下代码:
const oldArr = ['"number1":1', '"number2":2', '"number3":3'] const newObj = {} oldArr.forEach(item => { const [rawKey, rawValue] = item.split(':') const key = rawKey.replace(/"/g, '') newObj[key] = parseInt(rawValue) })
内容的提问来源于stack exchange,提问作者een57
相关产品推荐
相关产品推荐

