PHP中如何将从CDATA获取的键值对字符串转换为关联数组?
实现方案
你拿到的是自定义格式的键值对字符串,可通过字符串清洗+分段拆分的方式完成数组转换,具体实现如下:
处理逻辑
- 去除字符串首尾的大括号包裹符
- 分割字符串得到独立的键值对片段
- 遍历每个片段拆分出键名和键值,存入结果数组
代码实现
// 原始数据 $data = "{customertype=New, Telephone=09832354544, CITY=Henfield, LASTNAME=C, TicketNo=123456, FIRSTNAME=Alex, Id=10001273, testfield=123456, COMPANY=Camp1}"; // 去除首尾大括号 $trimmed = trim($data, '{}'); // 按逗号+空格分割为独立键值对,若空格数量不固定可替换为 $pairs = preg_split('/,\s*/', $trimmed); $pairs = explode(', ', $trimmed); $result = []; foreach ($pairs as $pair) { // 按等号最多拆分2段,避免值中包含等号的异常情况 list($key, $value) = explode('=', $pair, 2); // 若要求值为单元素数组,可改为 $result[$key] = [$value]; $result[$key] = $value; } // 打印测试结果 print_r($result);
输出示例
Array ( [customertype] => New [Telephone] => 09832354544 [CITY] => Henfield [LASTNAME] => C [TicketNo] => 123456 [FIRSTNAME] => Alex [Id] => 10001273 [testfield] => 123456 [COMPANY] => Camp1 )
内容的提问来源于stack exchange,提问作者Kiran Nepali
相关产品推荐
相关产品推荐

