多个数组搜索并返回值适合的数组

时间:2018-01-23 08:19:22

标签: php arrays search

我是一个关于php的新手,我很难解决这个问题。 我有以下结构:

X1 ... X2 ... X3 ..... X20

1 ... 2 .... 8

2 ... 3 ... 11

4 ... 6 .... 18

6 ... 9 .... 13

8 ... 10 ... 16

10 ... 11 ... 18

......等等。

每行30行。

现在我有一个变量,让我们说$ var = 7。 如何返回找到的colums的值。在这种情况下,结果应为X1,X2。

如果$ var = 16,结果应为X3 如果$ var = 10结果应该是X1,X2,X3。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

我会将你的所有范围都放在一个数组中,迭代它们并使用in_array来查找包含你搜索内容的范围。

$ranges = [
    'x1' => [1,2,8],
    'x2' => [2,3,11],
    'x2' => [4,6,18]
];
$res = [];
$search = 4;
foreach(ranges as $rangeName => $range){
    if(in_array($range,$search)){
        $res[] = $rangeName;
    }
}

答案 1 :(得分:0)

谢谢,它经过一些改进后才能运作。

<?php 
$ranges = [
    'x1' => [1,2,8],
    'x2' => [2,3,11],
    'x3' => [5,6,18],
];
$res = [];
$search = 4;
foreach($ranges as $rangeName => $range){
 $min = min($range);
 $max = max($range);
$interval=range($min,$max);
    if(in_array($search,$interval)){
        $res[] = $rangeName;
echo $rangeName."<br/>";
    }
}
?> }

这是已解决的,但仅适用于整数!

现在,困难的部分:)...如果范围是2个小数的浮动数字 &#39; X4&#39; =&GT; [0.27,1.93,8.92],即使$ search = 4在范围内,代码也不会将其视为&#34;良好范围&#34; 在我的真实应用程序中,范围和$搜索号浮动2位小数... 那么,有什么想法吗?