检查数组键的范围是否为数字

时间:2015-11-13 10:58:06

标签: php

我想循环一个数组并检查值是否为数字。

例如

$ rowdata是一个多维数组

if (!is_int($rowData[0][0]||$rowData[0][1]||$rowData[0][2]) {
echo the value which is not a integer

}

仅仅是为了获取信息,我已经完成了循环工作,以便我能够实现上述目标

2 个答案:

答案 0 :(得分:1)

编辑:

您的if(!is_int($rowData[0][0]||$rowData[0][1]||$rowData[0][2]))错了。你必须像这样分割参数:

if(!is_int($rowData[0][0]) || is_int_($rowData[0][1]) || is_int($rowData[0][2]))

<小时/> 在此处使用动态解决方案:

使用嵌套的foreach-loop

$rowData = array(array(1,2,"3"),array("asdf",1,"sadf"));

foreach($rowData as $key1=>$row1){
    foreach($row1 as $key2=>$row2){
        if(is_int($row2)){
            echo "\$rowData[$key1][$key2] is int".PHP_EOL;
        }
    }
}

输出:

$rowData[0][0] is int
$rowData[0][1] is int
$rowData[1][1] is int

<强> Snippet Example here

答案 1 :(得分:0)

对于单个数组,这是一种确认所有都是整数的简单方法:

function errorDisplay($regErrors){
    //Display Errors
        foreach ($regErrors as $errrorMessage) {
            ?>
                <script>
                    $("#errors").append('<div class="alert alert-danger" role="alert"><?php echo $errrorMessage; ?></div>');
                    if($(window).width()<=1024 && $(window).height()<=768){
                        $(".registerContainer").animate({marginBottom:"75vh"});
                    }
                    else{
                        $(".registerContainer").animate({marginBottom:"60"});
                    }
                    alert($msgheight);
                </script>
            <?php
        }
}

所以对你的情况来说:

$a = [1, 2, 3, 'a', 4];
$allInt = array_reduce($a, function ($r, $i) { return $r && is_int($i); }, true);

另一种方法,它也会返回非整数项:

if (!array_reduce($row[0], function ($r, $i) { return $r && is_int($i); }, true)) {
    // not all are integers
}

所以:

array_filter($a, function ($i) { return !is_int($i); })