我想循环一个数组并检查值是否为数字。
例如
$ rowdata是一个多维数组
if (!is_int($rowData[0][0]||$rowData[0][1]||$rowData[0][2]) {
echo the value which is not a integer
}
仅仅是为了获取信息,我已经完成了循环工作,以便我能够实现上述目标
答案 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); })