我想从连接两个点的数组中找到可能的选项。
例如。
ReceiveMessage
$startPoint = 1;
$endPoint = 5;
函数应返回
$points = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 5] [4, 3], [1, 4], [1, 3], [1, 5], [1, 6]];
最好添加一个可能的选项限制,例如。如果最多允许3种组合,则该函数将返回
$possibleOptions = [[1, 5], [[1, 4], [4, 5]], [[1, 6], [6, 5]], [[1, 2], [2, 3], [3, 4], [4, 5]]]
$possibleOptions = [[1, 5], [[1, 4], [4, 5], [[1, 6], [6, 5]]
总共有4种组合。
我尝试遍历数组并首先找到直接匹配项。如果未找到直接匹配项,我将再次遍历点并创建一个新数组,其中所有以起点为第一个值的点。然后,我检查新数组是否具有最后一个值为端点的元素。但是,我觉得它是重复的代码,可以进行优化,因为我必须重复代码以获取最大数量的组合。只是不确定如何...
这是我的代码示例:
[[[1, 2], [2, 3], [3, 4], [4, 5]]]