Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从字符串数组中删除错误的符号和长度错误的字符串?_Php_Arrays_Regex - Fatal编程技术网

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

Php 如何从字符串数组中删除错误的符号和长度错误的字符串?,php,arrays,regex,Php,Arrays,Regex,我有这样的阵列: $array = array('abC12', 'bC44', 'Am286c$', 'cC092', 'cC09288'); 使用rexexp时,首先必须删除[A-Ca-c0-9]中不存在的符号(替换为“”)。 其次,有必要从数组中删除与此条件不匹配的变量: 字符串长度不等于5(值“bC44”和“cC09288”) 因此,结果数组必须包含: $array = array('abC12', 'A286c', 'cC092'); 谢谢你的帮助 弗拉基米尔。怎么样: $resu

我有这样的阵列:

$array = array('abC12', 'bC44', 'Am286c$', 'cC092', 'cC09288');
使用rexexp时,首先必须删除[A-Ca-c0-9]中不存在的符号(替换为“”)。 其次,有必要从数组中删除与此条件不匹配的变量: 字符串长度不等于5(值“bC44”和“cC09288”)

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

$array = array('abC12', 'A286c', 'cC092');
谢谢你的帮助

弗拉基米尔。

怎么样:

$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;
    }
}
$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也作用于阵列。

文档,

Barmar,非常感谢!是否可以只使用preg_replace(以某种方式使用{32})?因此,如果block
preg_replace
只返回更新后的字符串,则不使用它,它不会对字符串是否放入
$result
中产生任何影响;好的,您可以从中获取有关替换字符串中的符号和空格的帮助