Как лучше всего проверить, находятся ли все значения массива в диапазоне?Лучший способ проверить, находятся ли все значения массива в диапазоне
Например:
$range = range(10, 40);
$array1 = array(10, 20, 40); // OK
$array2 = array(11, 22, 42, 30); // FALSE
$array3 = array(50); // OK
$array4 = array(10, 20, 30, 'a'); // FALSE
$array5 = array("%", 20); // FALSE
$array6 = array(10, 20, 40, 39, 40); // OK
Так как я могу проверить, если значения массива являются числа (целые) и находятся в диапазоне?
Я пробовал:
$tmp = 0;
foreach ($array1 as $a1) {
if (!in_array($a1, $range) && is_int($a1)) {
$tmp++;
}
}
if ($tmp > 0) {
echo "false";
} else {
echo "ok";
}
Может быть, это лучше? Может быть, с array_map()
?
так, что вы пробовали ?? –
Функция 'min' даст вам минимальное значение всех массивов, которые вы выбрасываете на него. Функция 'max' даст вам максимальное значение всех массивов, которые вы выбрали на нем. Вы можете увидеть, если 'min ($ a1, $ a2, $ a3) <10', чтобы проверить нижнюю границу и сделать что-то подобное для верхней границы. – kainaw
1 и 2 не находятся между 10 и 40 и ни 5, и т.д ... поэтому ваши примеры не соответствуют описанию. – AbraCadaver