Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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_Multidimensional Array - Fatal编程技术网

与正则表达式的比较和php中的差异计数

与正则表达式的比较和php中的差异计数,php,multidimensional-array,Php,Multidimensional Array,我有一个多维数组,希望与正则表达式进行比较,得到差值的计数 数组: Array ( [0] => Array ( [SaleId] => 11^ ) [1] => Array ( [SaleId] => 222@ ) [2] => Array ( [SaleId] => 333% ) [3] => Array (

我有一个多维数组,希望与正则表达式进行比较,得到差值的计数

数组:

Array ( 
    [0] => Array ( 
        [SaleId] => 11^ 
    ) 
    [1] => Array ( 
        [SaleId] => 222@ 
    ) 
    [2] => Array ( 
        [SaleId] => 333% 
    ) 
    [3] => Array ( 
        [SaleId] => %%$ 
    ) 
) 
PHP代码:

$number = count(!preg_match("/[0-9][a-z][A-z][@.+-_]/",$SaleId));
echo $number;
为正则表达式解释:

  • 小写字母
  • 大写字母
  • 特殊字符@+-_
  • 但是
    $number
    在任何情况下都返回1! 请帮帮我

    返回输出=1

    我想返回3

    preg_match()将为true或false。因此,如果找到匹配项,则意味着按下面给定的方式计算值。您正在传递整个数组。我们应该传递带索引的数组。因此,请使用for循环尝试此操作

    <?php
    $arr = array(
    0 => array(
        'SaleId' => '11^' ),
    1 => array(
        'SaleId' => '222@'),
    2 => array(
        'SaleId' => '333%'),
    3 => array(
        'SaleId' => '%%$' ),
     );
    
     //print_r($arr);exit();
     $not_match_count=0;
     $match_count=0;
     for($i=0;$i<sizeof($arr);$i++){
    $name=$arr[$i]['SaleId'];
    if (!preg_match("/^[0-9a-zA-Z.\@\+\-\_]*$/",$name)) {
     $not_match_count=$not_match_count+1;
    }
    else{
    $match_count=$match_count+1;
    }
    }
    echo $not_match_count."<br>".$match_count;// your expected output
    ?>
    
    
    
    你想要实现什么?@Fatemeh Namkah:你期望的输出是什么?你能发布它吗。@VigneswaranS输出必须使用正则表达式计算差异数组的数量,但对于任何数组示例,是的,该数字返回1个下一票?什么?@HalayemAnis edite我的问题