如何搜索一个值是否在一个范围内,在PHP的多维数组内


How do I search if a value is in a range, inside a multi-dimensional array in PHP?

这是一个简单的问题,但却让我困惑:

$myarray = array(
    array(10,20),
    array(299, 315),
    array(156, 199)
);

我如何检查给定的$x是否位于任何特定的单个数组值之间?我想搜索每个单独的条目数组

例如,我想搜索,如果$x是介于:1020之间,然后在299315之间,然后在156199之间。

试试这个:

function is_in_array_range($array, $search) {
    foreach ($array as $value) {
        $min = min($value);
        $max = max($value);
        if ($search >= $min && $search <= $max) {
            return true;
        }
    }
    return false;
}
$myarray = array(
    array(10,20),
    array(299, 315),
    array(156, 199)
);
is_in_array_range($myarray, 9);  // Returns false
is_in_array_range($myarray, 11); // Returns true

函数is_in_array_range()将接受两个参数。

要检查的值在该范围内。

当它进入时,循环遍历数组中的所有元素。每次它获得嵌套数组的最高和最低值(min()max()函数),并检查您正在寻找的值是否在它们之间。如果是这种情况,则返回true(这也会停止函数)。如果从未达到true,则未找到该值,因此在函数结束时,返回false。

这样做代码

foreach($myarray as $value)
{
if(in_array("10", $value, true))
{
    echo "Got 10";
}
}