我已经为此奋斗了 HOURS,但我完全被困住了。
我正在随机生成数字并找出它们的质因数。例如……
420 的质因数:2、2、3、5、7
690 的质因数:2、3、5、23
我想在列出匹配对和“不常见”因素时分别突出显示它们。所以,在这种情况下,我想要类似...
420 的质因数:2、2、3、5、7
690 的质因数:2、3、5、23
然后来自 420 的其他 2 和 7,以及来自 690 的 23 将以红色突出显示(例如)。
我已经有了数组中的主要因子列表(分别为 $factor_list_1_old
和 $factor_list_2_old
)。我还有一个数组中的公因子列表 ($commons
) 和一个数组中的不常见因子列表 ($uncommons
)。
我已经尝试了很多方法来做到这一点,但似乎没有一种方法适用于所有情况。我可以让这个场景工作,但它会在 420 和 780 之类的情况下失败。
有什么想法吗?
最佳答案
我的函数
$array1 = array(2, 2, 3, 5, 7);
$array2 = array(2, 3, 5, 23);
function highlightFactors($factors, $other_factors)
{
$result = array();
foreach ($factors as $factor)
{
if (($found_key = array_search($factor, $other_factors)) === false)
{
$result[] = array($factor, 'normal');
}
else
{
$result[] = array($factor, 'bold');
unset($other_factors[$found_key]);
}
}
return $result;
}
echo json_encode(highlightFactors($array1, $array2));
// [[2,"bold"],[2,"normal"],[3,"bold"],[5,"bold"],[7,"normal"]]
echo json_encode(highlightFactors($array2, $array1));
// [[2,"bold"],[3,"bold"],[5,"bold"],[23,"normal"]]
关于php - 匹配数组值对 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087838/