假设我有一个500,000个单元的一维数组,我想知道这个数组是否是数字,最明显的选择是迭代整个数组并使用is_numeric()函数或使用array_shift。问题在于这两个选项都是O(n)(如果我错了,请纠正我),并且随着阵列中数据的增长而更加昂贵。 我想到了另一种方式,但我不确定它的O,即使用regex和array_search搜索数组中的所有非数值。你觉得怎么样,有没有更便宜的选择?
答案 0 :(得分:0)
内爆是否有效?如果你有一个简单的数组,我会将所有元素连接成一个字符串并对is_numeric运行它。至少你只需要进行一次数字检查。
$foo = array(1, 2, 3, 4, 5, 6, ....);
$bar = implode('', $foo);
var_dump(is_numeric($bar));