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