如果值介于两个元素之间,如何搜索关联数组
How to search an Associative array if a value is between two elements
我有以下内容:
我有一定的价值14.50
以及以下关联数组:
element a element b element c
row 1 8 12 house
row 2 12 15 cat
row 3 17 20 pizza
有谁知道如何检查关联数组中 14.50 在元素 a 和 b 之间的哪一行。在示例第 2 行中。
我想获取价值猫。
如果值为 4,我想给第一个值 'house' ...
请指教:)
Array
(
[0] => Array
(
[medewerker] => 799
[datum] => 2016-04-14 00:00:00
[uursoort] => Reisuur
[uurcode] => RNV
[project] =>
[begin] => 7.50
[eind] => 8.00
[uren] => 0.5
[cumulatiefOud] => 0
[cumulatief] => 0
[overuren125] => 0
[overuren150] => 0
)
[1] => Array
(
[medewerker] => 799
[datum] => 2016-04-14 00:00:00
[uursoort] => Werkuur
[uurcode] => DNV
[project] =>
[begin] => 8.00
[eind] => 16
[uren] => 8
[cumulatiefOud] => 0
[cumulatief] => 8
[overuren125] => 0
[overuren150] => 0
)
[2] => Array
(
[medewerker] => 799
[datum] => 2016-04-14 00:00:00
[uursoort] => Werkuur
[uurcode] => DEV125
[project] =>
[begin] => 8.00
[eind] => 16.25
[uren] => 0.25
[cumulatiefOud] => 8
[cumulatief] => 8.25
[overuren125] => 0.25
[overuren150] => 0
)
我这样做了并且成功了:
<?php
$arr = array();
$arr[1]['a'] = 8;
$arr[1]['b'] = 12;
$arr[1]['c'] = 'house';
$arr[2]['a'] = 12;
$arr[2]['b'] = 15;
$arr[2]['c'] = 'cat';
$arr[3]['a'] = 17;
$arr[3]['b'] = 20;
$arr[3]['c'] = 'pizza';
$number = 14.5;
foreach($arr as $row)
{
if ($number >= $row['a'] && $number <= $row['b'])
echo $row['c'];
}
?>
Output: cat
实际上,这是基本的编程。您只需要遍历行并验证您想要的数字是否在 begin
和 end
变量之间。在这种情况下,a
和 b
.
然后echo
你想要的值,或者做其他事情。
在这段代码中如果$number = 12;
,它会回显
housecat
因此您不想验证它是否大于或等于,而只是检查它是否大于而不等于 b
。
像这样:
if ($number > $row['a'] && $number <= $row['b'])
我有以下内容:
我有一定的价值14.50
以及以下关联数组:
element a element b element c
row 1 8 12 house
row 2 12 15 cat
row 3 17 20 pizza
有谁知道如何检查关联数组中 14.50 在元素 a 和 b 之间的哪一行。在示例第 2 行中。
我想获取价值猫。 如果值为 4,我想给第一个值 'house' ...
请指教:)
Array
(
[0] => Array
(
[medewerker] => 799
[datum] => 2016-04-14 00:00:00
[uursoort] => Reisuur
[uurcode] => RNV
[project] =>
[begin] => 7.50
[eind] => 8.00
[uren] => 0.5
[cumulatiefOud] => 0
[cumulatief] => 0
[overuren125] => 0
[overuren150] => 0
)
[1] => Array
(
[medewerker] => 799
[datum] => 2016-04-14 00:00:00
[uursoort] => Werkuur
[uurcode] => DNV
[project] =>
[begin] => 8.00
[eind] => 16
[uren] => 8
[cumulatiefOud] => 0
[cumulatief] => 8
[overuren125] => 0
[overuren150] => 0
)
[2] => Array
(
[medewerker] => 799
[datum] => 2016-04-14 00:00:00
[uursoort] => Werkuur
[uurcode] => DEV125
[project] =>
[begin] => 8.00
[eind] => 16.25
[uren] => 0.25
[cumulatiefOud] => 8
[cumulatief] => 8.25
[overuren125] => 0.25
[overuren150] => 0
)
我这样做了并且成功了:
<?php
$arr = array();
$arr[1]['a'] = 8;
$arr[1]['b'] = 12;
$arr[1]['c'] = 'house';
$arr[2]['a'] = 12;
$arr[2]['b'] = 15;
$arr[2]['c'] = 'cat';
$arr[3]['a'] = 17;
$arr[3]['b'] = 20;
$arr[3]['c'] = 'pizza';
$number = 14.5;
foreach($arr as $row)
{
if ($number >= $row['a'] && $number <= $row['b'])
echo $row['c'];
}
?>
Output: cat
实际上,这是基本的编程。您只需要遍历行并验证您想要的数字是否在 begin
和 end
变量之间。在这种情况下,a
和 b
.
然后echo
你想要的值,或者做其他事情。
在这段代码中如果$number = 12;
,它会回显
housecat
因此您不想验证它是否大于或等于,而只是检查它是否大于而不等于 b
。
像这样:
if ($number > $row['a'] && $number <= $row['b'])