这是一个简单的问题,但却让我困惑:
$myarray = array(
array(10,20),
array(299, 315),
array(156, 199)
);
我如何检查给定的$x
是否位于任何特定的单个数组值之间?我想搜索每个单独的条目数组
例如,我想搜索,如果$x
是介于:10
到20
之间,然后在299
到315
之间,然后在156
到199
之间。
试试这个:
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";
}
}