【发布时间】:2014-10-14 09:27:53
【问题描述】:
我正在为此苦苦挣扎..
我有一个这样的字符串。
$test2 = "AB:001,003;AC:001,003,004,005,008;AD:002,003,004,007,008,009";
是两个字母:3位数字,(这个可以重复);
这个字符串会有多个 2 字母前缀,3 位数条目的数量会有所不同。
我需要能够在 2 个字母前缀和相关的 3 位数字之间找到匹配项。
EG: AD003 是否存在于字符串中?我知道 003 出现了多次,但我只想找到 AD003,或者我查询的另一个匹配项。
我认为将字符串转换为以 2 个字母前缀命名的单个数组是可行的方法..
$AB = array('001','003');
$AC = array('001','003','004',008);
$AD = array('002','003','004','007','008','009');
我已经在; 和: 上爆炸了它
$parts = explode(";",$test2) ;
foreach ($parts as $value) {
$a[] = explode(":", $value);
}
print_r ( $a );
这会导致:
Array
(
[0] => Array
(
[0] => AB
[1] => 001,002,003
)
[1] => Array
(
[0] => AC
[1] => 001,003,004,005
)
[2] => Array
(
[0] => AD
[1] => 002,003,004
)
)
但我不知道如何更进一步。
我希望能够在数组中搜索特定匹配项:
if (in_array("003", $AD)) {
echo "Match";
}
如果有比转换为数组更简单的方法来在字符串中查找 AD003,那么我很乐意尝试。
谢谢
【问题讨论】: