php根据数组坐标判断所在区域

{"A0": {"xMax": -600000, "xMin": -904299, "yMax": -294000, "yMin": -600000}, "A1": {"xMax": -295500, "xMin": -600000, "yMax": -294000, "yMin": -600000}, "A2": {"xMax": 10000, "xMin": -295500, "yMax": -294000, "yMin": -600000}, "A3": {"xMax": 314500, "xMin": 10000, "yMax": -294000, "yMin": -600000}, "A4": {"xMax": 620000, "xMin": 314500, "yMax": -294000, "yMin": -600000}, "B0": {"xMax": -600000, "xMin": -904299, "yMax": 12000, "yMin": -294000}, "B1": {"xMax": -295500, "xMin": -600000, "yMax": 12000, "yMin": -294000}, "B2": {"xMax": 10000, "xMin": -295500, "yMax": 12000, "yMin": -294000}, "B3": {"xMax": 314500, "xMin": 10000, "yMax": 12000, "yMin": -294000}, "B4": {"xMax": 620000, "xMin": 314500, "yMax": 12000, "yMin": -294000}, "C0": {"xMax": -600000, "xMin": -904299, "yMax": 318000, "yMin": 12000}, "C1": {"xMax": -295500, "xMin": -600000, "yMax": 318000, "yMin": 12000}, "C2": {"xMax": 10000, "xMin": -295500, "yMax": 318000, "yMin": 12000}, "C3": {"xMax": 314500, "xMin": 10000, "yMax": 318000, "yMin": 12000}, "C4": {"xMax": 620000, "xMin": 314500, "yMax": 318000, "yMin": 12000}, "D0": {"xMax": -600000, "xMin": -904299, "yMax": 620000, "yMin": 318000}, "D1": {"xMax": -295500, "xMin": -600000, "yMax": 620000, "yMin": 318000}, "D2": {"xMax": 10000, "xMin": -295500, "yMax": 620000, "yMin": 318000}, "D3": {"xMax": 314500, "xMin": 10000, "yMax": 620000, "yMin": 318000}, "D4": {"xMax": 620000, "xMin": 314500, "yMax": 620000, "yMin": 318000}, "Z0": {"xMax": -600000, "xMin": -904299, "yMax": -600000, "yMin": -908000}, "Z1": {"xMax": -295500, "xMin": -600000, "yMax": -600000, "yMin": -908000}, "Z2": {"xMax": 10000, "xMin": -295500, "yMax": -600000, "yMin": -908000}, "Z3": {"xMax": 314500, "xMin": 10000, "yMax": -600000, "yMin": -908000}, "Z4": {"xMax": 620000, "xMin": 314500, "yMax": -600000, "yMin": -908000}}用php写一个根据以上数据有多个坐标区块,每个区块四个坐标值X轴最大值x1,X轴最小值x2,Y轴最大值y1,Y轴最小值y2,怎么通过随机坐标值X轴x,Y轴y判断在哪个区块的函数代码
复制内容

根据给定的数据,我们可以使用以下PHP代码来实现根据随机坐标值X轴x和Y轴y判断它们位于哪个区块的功能:

[复制]<?php

function findBlock($x, $y, $blocks) {

foreach ($blocks as $blockName => $block) {
    $xMin = $block['xMin'];
    $xMax = $block['xMax'];
    $yMin = $block['yMin'];
    $yMax = $block['yMax'];

    if ($x >= $xMin && $x <= $xMax && $y >= $yMin && $y <= $yMax) {
        return $blockName;
    }
}

return "未知区块";

}

// 定义区块
$blocks = [

"A0" => ["xMin" => -600000, "xMax" => -904299, "yMin" => -294000, "yMax" => -600000],
"A1" => ["xMin" => -295500, "xMax" => -600000, "yMin" => -294000, "yMax" => -600000],
"A2" => ["xMin" => 10000, "xMax" => -295500, "yMin" => -294000, "yMax" => -600000],
// 添加更多区块...

];

// 生成随机坐标
$x = rand(-904299, 620000);
$y = rand(-600000, -908000);

$block = findBlock($x, $y, $blocks);
echo "坐标点 ($x, $y) 位于 $block";

?>
在上面的代码中,我们定义了一个findBlock函数,用于根据给定的X轴和Y轴坐标判断它们位于哪个区块。函数接受三个参数:$x和$y表示坐标点的X轴和Y轴坐标,$blocks是一个包含多个区块信息的关联数组。

在函数内部,我们使用foreach循环遍历每个区块。对于每个区块,我们提取出X轴和Y轴的最小值和最大值,并使用条件语句判断给定的坐标点是否位于该区块内。如果是,则返回该区块的名称。

在示例中,我们使用给定的区块数据定义了一个包含多个区块的关联数组。然后,生成了一个随机坐标点,并调用findBlock函数进行判断。最后,将结果输出到屏幕上。

你可以根据需要添加更多的区块,并修改示例中的随机坐标点来进行测试。如果给定的坐标点不在任何区块内,则返回"未知区块"。

发表评论

电子邮件地址不会被公开。 必填项已用*标注