将反斜杠分隔的字符串转换为关联数组
在 PHP 中,常见的任务是处理以键值对分隔的格式的字符串通过分隔符。一个常见的示例是反斜杠分隔的字符串,其中键和值对由反斜杠 () 分隔。
使用 preg_match_all 和 array_combine
一种有效的方法包括使用preg_match_all 函数将键和值提取到单独的数组中,然后使用组合array_combine.
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
此正则表达式模式将任何非反斜杠字符匹配到 $p[1](键),并将任何非反斜杠字符匹配到 $p[2](值)。
自定义键/值分隔符
这种方法可以推广到处理不同的键值分隔符:
preg_match_all("/ ([^:]+) : ([^,]+) /x", $string, $p); $array = array_combine($p[1], $p[2]);
只需将“:”替换为所需的键值分隔符,将“,”替换为所需的对分隔符。
允许使用不同的分隔符
为了允许不同的分隔符,使用:
preg_match_all("/ ([^:=]+) [:=]+ ([^,+&]+) /x", $string, $p);
这允许 key=value、key2:value2 或类似的变体。
附加功能
您可以进一步增强提取:
替代方案:parse_str
为了方便处理 key=value&key2=value2 字符串,请考虑将 parse_str 与strtr:
parse_str(strtr($string, ":,", "=&"), $pairs);
注意事项
根据您的要求和情况选择最合适的方法权衡。
以上是在 PHP 中如何将反斜杠分隔的字符串转换为关联数组?的详细内容。更多信息请关注PHP中文网其他相关文章!