当前位置: 首页 > 知识库问答 >
问题:

如果没有详细的if子句,如何在PHP中找到两个数组子值之间的数组匹配?

欧阳乐生
2023-03-14

我需要根据PHP中的最小值和最大值在数组中查找匹配项。如果没有详细的foreach、if、elseif、then子句,如何有效地获取匹配行?

例如给定数组$arr(如下)和数字4,如何返回数组行123

$arr = array(
    0 => array( 'min' => 1,     'max' => 1,     'name' => 'alpha'),
    1 => array( 'min' => 1,     'max' => 9,     'name' => 'beta'),
    2 => array( 'min' => 1,     'max' => 19,    'name' => 'gamma'),
    3 => array( 'min' => 2,     'max' => 29,    'name' => 'delta'),
    4 => array( 'min' => 10,    'max' => 100,   'name' => 'epsilon'),
    5 => array( 'min' => 20,    'max' => 100,   'name' => 'zeta'),
    6 => array( 'min' => 30,    'max' => 100,   'name' => 'eta')
);

我希望把它变成一个函数。大概是这样的:

function findMatchingRows($n) {
    $arr = /*** see above ***/;
    /*** your answer! ***/
    return $matchingRows;
}

$n = 12;
print_r(findMatchingRows($n));

上述的预期结果应该是行234。但我希望它适用于1到100之间的任何整数。

共有1个答案

宣高朗
2023-03-14
$number = 4;
$result = array_filter($arr, function ($elem) use ($number) {
   return $elem['min'] <= $number && $number <= $elem['max'];
});
 类似资料:
  • 问题内容: 我有两个数组,我希望能够比较两个数组,只返回匹配的值。例如,两个数组都具有值,因此将返回该值。我还没找到这样的东西。返回相似度的最佳方法是什么? 问题答案: 自然,我的方法是循环遍历第一个数组一次并检查第二个数组中每个值的索引。如果索引为,则将其添加到返回的数组中。 我的解决方案不像其他循环那样使用两个循环,因此它的运行速度可能会更快一些。如果要避免使用,则可以先对两个数组进行排序,以

  • 我实现了以下代码: 但是,它同时返回和,即使在考虑我报告的数组时,我只打印(因为数组#1包含) 有什么办法可以修正我的代码吗?谢谢你

  • 我有一个,子数组总是包含5个数字-数字按大小排序,不能在子数组中重复,但是中可以有更多“相同”的子数组(具有相同数字的子数组)。 如何获得数字的组合(数组),其中该组合(或者更确切地说,由该$n数字组合生成的5个数字组合)将与的大多数子数组相匹配? 示例:的的所需结果将是,因为从该结果导出的总共有二十一个5个数字组合: 这些组合将匹配几乎所有的子数组(只有第二个和最后两个子数组超出范围)。 我曾尝

  • 您将得到一个包含正数和负数的数组。你要在数组中找到一个子数组,它等于某个值X。输入是数组和X值。输出是子数组的开始和结束索引。 例 下面是我在geeks4geeks上找到的代码

  • 从本质上说,我是想创造一个游戏反转。如果你不知道它是什么,我有一个8x8的方块板。有两个坐标,我需要确定所有的方块之间的两个坐标,并填写他们。这两个坐标要么在相同的y上,要么在相同的x上,要么彼此对角线上。 有人能解释一下我做这种事情的逻辑吗?如何确定两个坐标之间所有元素的坐标。

  • 问题内容: 我有一个带有属性的关系架构(ABCD)。我也有一组功能依赖项。 现在,我需要确定R属性的所有可能子集的闭包。那就是我被困住的地方。我需要学习如何在PHP中查找子集(非重复)。 我的数组是这样存储的。 所以我的子集应该是 该代码不应该太大,但是由于某种原因我无法理解。 问题答案: 您希望获得什么动力?那就是你的问题的含义。 可以在此处找到示例(为完整性起见)