PHP explode()到多个变量,其中

PHP explode()到多个变量,其中,php,explode,Php,Explode,我的确切情况需要解释的时间有点长,可能与此无关 我知道我能做到: list($id, $type, $data, $directive) = explode("*", $data); 我的数据将类似于1234*A*bf233d2d*F 其中id为1234,类型为A,数据为十六进制bf,23,3d,2d…我后来使用拆分字符串获取每个数据…也不用担心…但最后一个F是指它的第一个数据(或其他东西)…可能存在,也可能不存在…因此,如果它不存在(显然)可能是索引错误 任何解决方法???尝试使用正则表达式

我的确切情况需要解释的时间有点长,可能与此无关

我知道我能做到:

list($id, $type, $data, $directive) = explode("*", $data);
我的数据将类似于
1234*A*bf233d2d*F

其中id为
1234
,类型为A,数据为十六进制
bf,23,3d,2d
…我后来使用拆分字符串获取每个数据…也不用担心…但最后一个
F
是指它的第一个数据(或其他东西)…可能存在,也可能不存在…因此,如果它不存在(显然)可能是索引错误

任何解决方法???

尝试使用正则表达式

preg_match('/\A(\d+)\*(\w)\*(\w+)\*?(F?)\Z/', $data, $matches);

$id = $matches[1];
$type = $matches[2];
$data = $matches[3];
$first = $matches[4];

您可以使用来微调您的正则表达式。

巧妙地框定问题,否则问题很快就会结束,时间现在开始
list($id,$type,$data,$directive)=explode(“*”,$data.'*')@MarkBaker+1对于最简单的解决方案,我会使用正则表达式来实现这个。。。