我正在解析具有以下模式的 PHP 字符串
VARIABLE Key1 Value1 Key2 Value2 Key3 Value3 ...
类似于:
JOBGRADE 'P' 'Parttime Employee' 'C' 'Customer Support'
或
SOMEVARIABLE 1 "Value1" 2 'Value2'
此行以不带引号的字符串开头,可以包含单引号或双引号字符串和/或数字。它可以有一对多的键值对。
我需要以两种方式拆分字符串:
第一个得到非数字的不带引号的字符串。
第二个提取数值和/或带引号的字符串 - 可以是单个或两个
因此我需要
- 工作等级
- P:兼职员工
- C:客户支持
或
- 一些变量
- 1:值1
- 2:值2
我的想法:
我考虑过拆分字符串并遍历它来测试:
对于 1:如果值不是数字且未被引用,则它是变量名
对于 2+:不确定执行此操作的简单方法,因为我必须检测键和值之间的差异:
问题:
如何区分键/值?
最佳答案
将其视为 CSV,并对其进行迭代以将其拆分。变量为[0]
,键为奇数从[1]
开始,值为偶数从[2]
开始。
var_dump(str_getcsv("JOBGRADE 'P' 'Parttime Employee' 'C' 'Customer Support'",
' ', "'"));
array(5) { [0]=> string(8) "JOBGRADE" [1]=> string(1) "P" [2]=> string(17) "Parttime Employee" [3]=> string(1) "C" [4]=> string(16) "Customer Support" }
关于php - 如何在 PHP 中按空格、数字和引号拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336159/