如何在PHP中的多维数组内搜索值是否在某个范围内?

时间:2016-10-20 08:38:16

标签: php arrays

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

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

如何检查任何特定的单个数组值中是否存在$x?我想搜索每个单独的条目数组。

例如,我想搜索,如果$x介于:1020之间,然后介于299315之间,然后介于156之间{1}}至199

2 个答案:

答案 0 :(得分:1)

试试这个:

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。

答案 1 :(得分:0)

这将代码

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