我有这样的阵列:
$array = array('abC12', 'bC44', 'Am286c$', 'cC092', 'cC09288');
使用rexexp时,首先必须删除不在[A-Ca-c0-9]中的符号(替换为'')。 第二,有必要从不符合这种条件的数组变量中删除: 字符串长度不等于5(值'bC44'和'cC09288')。
因此,结果数组必须包含:
$array = array('abC12', 'A286c', 'cC092');
感谢您的帮助!
弗拉基米尔。
答案 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_replace,array_filter