说我有字符串:
$s = "ABCDEFGEHIJ";
和一个数组:
$a = array("2", "7", "A", "E", "J", "W", "Z");
如何搜索 $s 以查看 $a 中的字符是否存在,然后返回包含所有字符的数组?所以我会得到结果:
$result = array("A", "E", "J");
我试过 strpos($s, "A"); 但这仅适用于单个字符串并返回位置,因此它不符合条件。SO会怎么做?
说我有字符串:
$s = "ABCDEFGEHIJ";
和一个数组:
$a = array("2", "7", "A", "E", "J", "W", "Z");
如何搜索 $s 以查看 $a 中的字符是否存在,然后返回包含所有字符的数组?所以我会得到结果:
$result = array("A", "E", "J");
我试过 strpos($s, "A"); 但这仅适用于单个字符串并返回位置,因此它不符合条件。SO会怎么做?
你可以循环。不过对我来说似乎有点笨拙。
$s = "ABCDEFGEHIJ";
$a = array("2", "7", "A", "E", "J", "W", "Z");
$matches = array();
foreach ($a as $i) {
if (strpos($i, $s)) {
$matches[] = $i;
}
}
或者正则表达式替换不在字符数组中的所有内容:
$s = "ABCDEFGEHIJ";
$a = array("2", "7", "A", "E", "J", "W", "Z");
$out = preg_replace('/[^' . implode('',$a) . ']/' , '', $s);
并将其变成一个数组str_split($out)