如何从字符串数组中删除错误的符号和错误的长度字符串?

时间:2014-05-29 07:36:39

标签: php arrays regex

我有这样的阵列:

$array = array('abC12', 'bC44', 'Am286c$', 'cC092', 'cC09288');

使用rexexp时,首先必须删除不在[A-Ca-c0-9]中的符号(替换为'')。 第二,有必要从不符合这种条件的数组变量中删除: 字符串长度不等于5(值'bC44'和'cC09288')。

因此,结果数组必须包含:

$array = array('abC12', 'A286c', 'cC092');

感谢您的帮助!

弗拉基米尔。

2 个答案:

答案 0 :(得分:1)

$result = array();
foreach ($array as $val) {
    $val = preg_replace('/[^a-c0-9]/i', '', $val); // Remove symbols
    if (strlen($val) == 5) { // Check string length
        $result[] = $val;
    }
}

答案 1 :(得分:0)

怎么样:

$array = array('abC12', 'bC44', 'Am286c$', 'cC092', 'cC09288');
$array = array_filter(preg_replace('/[^a-c0-9]/i', '',$array),function ($var) {return strlen($var) == 5;});
print_r($array);

<强>输出:

Array
(
    [0] => abC12
    [2] => A286c
    [3] => cC092
)

preg_replace也对数组起作用 文档preg_replacearray_filter