php - 匹配数组值对 (PHP)

标签 php arrays

我已经为此奋斗了 HOURS,但我完全被困住了。

我正在随机生成数字并找出它们的质因数。例如……

420 的质因数:2、2、3、5、7
690 的质因数:2、3、5、23

我想在列出匹配对和“不常见”因素时分别突出显示它们。所以,在这种情况下,我想要类似...

420 的质因数:2、2、35、7
690 的质因数:235、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/

相关文章:

php - 我应该使用哪种 SQL 类型来输入值 4.865472349

arrays - Count(If) 公式未在数组中返回正确的结果

php - 显示基于 WooCommerce 购物车商品库存的预计交货日期范围

php - 当用户按下按钮时,如何从 View 中更改模型内的值?

php - 使用 mysql 和 php 创建多个 csv 文件

java - 检查 String 数组元素是否为 null

c - 由于重新分配而导致执行错误

javascript - 来自 URL 的正则表达式匹配数据在有两个匹配项时仅返回 1 个匹配项

java - 数组在 Android 的 Spinner 中不保存值

PHP 表单提交到 MySQL,无需刷新/重定向