如何检查数组中的特殊字符?

时间:2016-06-22 14:50:32

标签: php arrays if-statement preg-match strpos

我想为特殊字符创建一个条件。如果我们在数组中找到特殊字符,则显示错误消息,否则显示成功消息。 我的数组如下:

Array
(
 [0] => PRIVATE LIMITED
 [1] => *^%$32407
 [2] => 104810170620123
 [3] => 104810170620123
 [4] => 
 [5] => *)@!#CID010
 [6] => SURYA
 [7] => 2016-06-14 08:17:49   
 [8] => 840
 [9] => INR
}

所以我想要这样的条件。

if(Special char found){
   echo "Special char found";
}else{
   echo "Special char not found";
}

我想输出如下:

Array
(
 [0] => PRIVATE LIMITED
 [1] => 32407
 [2] => 104810170620123
 [3] => 104810170620123
 [4] => 
 [5] => CID010
 [6] => SURYA
 [7] => 2016-06-14 08:17:49   
 [8] => 840
 [9] => INR
 }

5 个答案:

答案 0 :(得分:1)

您可以遍历数组或使用PHP'sin_array函数,如下所示;

if(in_array($sSpecialChar, $aArray)){
    echo 'special char found';
}else{
    echo 'special char not found';
}

答案 1 :(得分:1)

您可以遍历数组并使用正则表达式进行检查。

foreach ($myArray as $item) {
    if(preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $item)) {
        echo "Special char found.";
    } else {
        echo "Special char not found.";
    }

}

答案 2 :(得分:1)

循环遍历数组,检查特殊字符并将其删除。如果找到任何特殊字符,请使用变量记录。

$special_found = false;
foreach ($array as &$string) { // Use a reference so assignment will update the array
    if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬]/', $string) {
        $special_found = true;
        $string = preg_replace('/[\'^£$%&*()}{@#~?><>,|=_+¬]/', '', $string);
    }
}
if ($special_found) {
    echo "Special char found";
}else{
    echo "Special char not found";
}

答案 3 :(得分:0)

您需要条件

preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/',$array_value)

工作:

var_export(array_map(function($a){
     return preg_replace('/[\'!^£$%&*()}{@#~?><>,|=_+¬-]/','',$a);
},array(
 'KAYA LIMITED','*^%$32407',
 '104810170620123','104810170620123',
 '','*)@!#CID010','HDFC Bank','2016-06-14 08:17:49',   
 '840','INR'
)));

不要改变你的问题;)

在评论中,char -也是一个特殊的字符! 所以array [1],array [5]和array [7]都有特殊的字符。

答案 4 :(得分:0)

或者,您可以创建一个函数来检查数组中的特殊字符。

function checkSpecialChar($array,$pattern){
    foreach($array as $k=>$val){
        if (preg_match($pattern, $val)){
            return true;
        }
    }
    return false;
}

// define a pattern 
$pattern = '/[\'^£$%&*()}{@#~?><>,|=_+¬]/';
if(checkSpecialChar($array,$pattern)){
    echo "Special char found";
}else{
    echo "Special char not found";
}

以上模式不会将日期格式视为特殊字符。