我有一个值数组,代表折线图上的点:
$temperatures = [23, 24, null, '', 25, '', '', null];
我正在使用 PHP4,但我认为它可以用任何语言回答。
数组仅包含数字、空值和空字符串。
数字表示温度,空值表示仪器不工作,空字符串表示两者都没有(仪器正在工作,只是不测量任何东西)。
点必须(在大多数情况下)连接,因为它是一个折线图。
我有一个$gap对应于每个点的变量,并告诉这个点是否连接到下一个点。如果设置为true,则点不连接(false否则)。例如,temperatures[0]必须将$gap for设置为false,因为线是在temperatures[0]温度 [1](they are both valid temperatures). $gap for温度 [1]and温度 [2]`之间绘制的,因此必须为真,因为后面有空值。等等。
当有 null 时, $gap 是绝对的true。对于数字和空字符串,它取决于:如果后面是空值,则间隙为真;如果后面跟着一个数字,gap 是假的。如果后面跟着空字符串,我们必须检查之后是否出现 null 或 number 并相应地应用前一句。如果后面只有空字符串,gap 为真。这是我的代码运行速度太慢,但产生了正确的结果:
$limit = count($temperatures);
for ($i = 0; $i <= limit; $i++) {
$next_is_number = false;
if (is_null($temperatures[i]) {
$gap = true;
} else {
for ($y = $i + 1; $i <= limit; $i++) {
if (is_null($temperatures[$y]) {
break;
} elsif (is_numeric($temperatures[$y]) {
$next_is_number = true;
break;
}
}
if ($next_is_number) {
$gap = false;
} else {
$gap = true;
}
}
}
我怎样才能加快速度?
倚天杖
白猪掌柜的