在字符串中查找几个字符并获取字符串中的字符数组?

时间:2013-08-19 02:37:31

标签: php

说我有字符串:

$s = "ABCDEFGEHIJ";

和一个数组:

$a = array("2", "7", "A", "E", "J", "W", "Z");

如何搜索$ s以查看$ a中的字符是否存在,然后返回包含所有字符的数组?所以我会得到结果:

$result = array("A", "E", "J");

我已经尝试过strpos($ s,“A”);但这仅适用于单个字符串并返回位置,因此不符合条件。怎么会这样做?

1 个答案:

答案 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)

的数组