【发布时间】:2019-01-21 22:17:43
【问题描述】:
是否有更快的方法来检查一个数字(不是null)的存在
php 中多维数组的列(例如,number9)?
尝试:
下面的if statement 似乎工作正常。
$arr=Array(
[0] => Array
(
[date] => 2019-01-16
[number1] => 20.4
[number2] => 20.54
[number3] => 19.71
[number4] => 19.73
[number5] => 70849266
[number6] => 70849266
[number7] => -0.65
[number8] => -3.189
[number9] => 20.0902
[string1] => Jan 16
[number10] => 0.047796070100903
)
.
.
.
[21] => Array
(
[date] => 2019-01-17
[number1 => 19.49
[number2] => 20.51
[number3] => 19.02
[number4] => 20.25
[number5] => 85018421
[number6] => 85018421
[number7] => 0.52
[number8] => 2.636
[number9] => 19.7988
[string1] => Jan 17
[number10] => 0.075411577270313
)
);
function isNumeric($var){
if (is_numeric($var)){
return true;
} else {
return false;
}
}
if((array_walk(array_column($arr, "number8"), 'isNumeric'))!=1)
【问题讨论】:
-
你为什么不在
array_walk中直接使用is_numeric? -
在大多数情况下,使用 foreach 迭代数组将比 array_walk 执行得更快。
-
@Dharman
array_walk()中的回调需要带两个参数。 -
The if statement below seems to be working okay给定您提出的代码,我怀疑,但是如果您拼写相同,则isNumeric与isNumberic可能会发生实际情况。当然,尽管))!=1不确定应该做什么,但您仍然会遇到此问题,但这是不正确的。您可能认为它有效,但array walk always Returns TRUE.php.net/manual/en/function.array-walk.php (根据文档)
标签: php arrays multidimensional-array null numbers