例如:
$string = "AND (pr.StatusCode <> 'U') AND ((pr.pkBrand = 9) OR (pr.pkBrand = 70)) AND ((pr.pkCategory = 55) OR (pr.pkCategory = 56)) AND (pr.StatusCode <> 'D')";
我需要将与 pkBrand 关联的值(即 9 和 70)拉入一个数组以在其他地方使用,并将 pkCategory 的值(即 55 和 56)再次拉入一个单独的数组以在其他地方使用。
请问我该怎么做。
最佳答案
也许你可以这样做:
$string = "AND (pr.StatusCode <> 'U') AND ((pr.pkBrand = 9) OR (pr.pkBrand = 70)) AND ((pr.pkCategory = 55) OR (pr.pkCategory = 56)) AND (pr.StatusCode <> 'D')";
preg_match_all("/pr.pkBrand = (\d+)|pr.pkCategory = (\d+)/", $string, $matches, PREG_SET_ORDER);
$matches
数组将如下所示:
数组(4) {
[0] =>
数组(2){
[0] =>
字符串(14)“pr.pkBrand = 9”
[1] =>
字符串(1)“9”
}
[1] =>
数组(2){
[0] =>
字符串(15)“pr.pkBrand = 70”
[1] =>
字符串(2)“70”
}
[2] =>
数组(3){
[0] =>
字符串(18)“pr.pkCategory = 55”
[1] =>
字符串(0)“”
[2] =>
字符串(2)“55”
}
[3] =>
数组(3){
[0] =>
字符串(18)“pr.pkCategory = 56”
[1] =>
字符串(0)“”
[2] =>
字符串(2)“56”
}
}
然后你可以从中提取你想要的值。
关于php - 如何从字符串中提取多个变量值(PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36127500/