php怎么判断两个数组中相同的值

worktile 其他 173

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,我们可以使用`array_intersect()`函数来判断两个数组中的相同值。该函数会返回两个数组中相同值的交集。

    以下是使用`array_intersect()`函数判断两个数组中相同值的示例代码:

    “`php
    $array1 = [1, 2, 3, 4, 5];
    $array2 = [4, 5, 6, 7, 8];
    $intersect = array_intersect($array1, $array2);

    if (!empty($intersect)) {
    echo “两个数组中存在相同的值:”;
    var_dump($intersect);
    } else {
    echo “两个数组中没有相同的值”;
    }
    “`

    上述代码中,两个数组`$array1`和`$array2`分别包含了一些数字。使用`array_intersect()`函数找到两个数组中相同的值赋给变量`$intersect`。然后通过判断`$intersect`是否为空来确定两个数组中是否存在相同的值。若存在相同的值,则输出该交集;若不存在,则输出相应的提示信息。

    此外,我们还可以使用`array_intersect_assoc()`函数来判断两个数组中相同的值,并且保留键值对的关系。

    以下是使用`array_intersect_assoc()`函数判断两个数组中相同值的示例代码:

    “`php
    $array1 = [‘name’ => ‘John’, ‘age’ => 25, ‘city’ => ‘New York’];
    $array2 = [‘name’ => ‘Jane’, ‘age’ => 30, ‘city’ => ‘New York’];
    $intersect = array_intersect_assoc($array1, $array2);

    if (!empty($intersect)) {
    echo “两个数组中存在相同的值:”;
    var_dump($intersect);
    } else {
    echo “两个数组中没有相同的值”;
    }
    “`

    上述代码中,两个数组`$array1`和`$array2`分别包含了一些键值对。使用`array_intersect_assoc()`函数找到两个数组中相同的值,并且保留键值对的关系赋给变量`$intersect`。然后通过判断`$intersect`是否为空来确定两个数组中是否存在相同的值。若存在相同的值,则输出该交集;若不存在,则输出相应的提示信息。

    总结起来,使用`array_intersect()`函数可以判断两个数组中相同的值,使用`array_intersect_assoc()`函数可以判断两个数组中相同的值并保留键值对的关系。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,判断两个数组中相同的值可以使用循环和条件语句,也可以使用内置的数组函数。下面我给出几种常用的方法:

    1. 使用循环遍历判断:使用两个嵌套的`foreach`循环,分别遍历两个数组,并使用条件语句判断是否存在相同的值。具体步骤如下:

    “`php
    $array1 = array(1, 2, 3, 4, 5);
    $array2 = array(4, 5, 6, 7, 8);
    $result = array();

    foreach ($array1 as $value1) {
    foreach ($array2 as $value2) {
    if ($value1 == $value2) {
    $result[] = $value1;
    }
    }
    }

    print_r($result);
    “`

    输出结果为:`Array ( [0] => 4 [1] => 5 )`

    2. 使用`array_intersect`函数:这个函数可以用来计算两个或多个数组的交集。将两个数组作为参数传递给`array_intersect`函数,并将返回的交集赋值给一个变量。具体步骤如下:

    “`php
    $array1 = array(1, 2, 3, 4, 5);
    $array2 = array(4, 5, 6, 7, 8);
    $result = array_intersect($array1, $array2);

    print_r($result);
    “`

    输出结果同样为:`Array ( [3] => 4 [4] => 5 )`

    3. 使用`array_intersect_assoc`函数:与`array_intersect`函数不同的是,`array_intersect_assoc`函数会同时比较数组的键和值,只有在键和值都相等的情况下才会得到交集。使用方法与前面的函数类似,具体步骤如下:

    “`php
    $array1 = array(“a” => 1, “b” => 2, “c” => 3);
    $array2 = array(“a” => 1, “b” => 3, “c” => 4);
    $result = array_intersect_assoc($array1, $array2);

    print_r($result);
    “`

    输出结果为:`Array ( [a] => 1 )`

    4. 使用`array_uintersect`函数:这个函数与`array_intersect`类似,但是可以自定义一个比较函数来判断相同的值。具体步骤如下:

    “`php
    $array1 = array(10, 20, 30, 40, 50);
    $array2 = array(20, 30, 40, 50, 60);
    $result = array_uintersect($array1, $array2, “strcasecmp”);

    print_r($result);
    “`

    输出结果为:`Array ( [1] => 20 [2] => 30 [3] => 40 [4] => 50 )`

    5. 使用`array_intersect_key`函数:这个函数用于比较两个数组的键,并返回相同键的值。具体步骤如下:

    “`php
    $array1 = array(“a” => 1, “b” => 2, “c” => 3);
    $array2 = array(“a” => 10, “b” => 20, “d” => 30);
    $result = array_intersect_key($array1, $array2);

    print_r($result);
    “`

    输出结果为:`Array ( [a] => 1 [b] => 2 )`

    以上是几种常用的方法,可以根据具体的需求选择适合的方法来判断两个数组中相同的值。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,判断两个数组中相同的值可以通过循环和条件判断来实现。下面是一种常见的方法:

    1. 获取两个数组的交集
    可以使用PHP提供的`array_intersect()`函数来获取两个数组的交集,该函数会返回一个包含交集值的新数组。

    “`php
    $array1 = [1, 2, 3, 4, 5];
    $array2 = [4, 5, 6, 7, 8];
    $intersect = array_intersect($array1, $array2);
    print_r($intersect); // 输出:Array ( [3] => 4 [4] => 5 )
    “`

    2. 使用循环和条件判断判断相同的值
    如果需要判断两个数组中相同的值,而不仅仅是获取交集,可以使用循环和条件判断来实现。

    “`php
    $array1 = [1, 2, 3, 4, 5];
    $array2 = [4, 5, 6, 7, 8];
    $commonValues = [];

    foreach ($array1 as $value1) {
    foreach ($array2 as $value2) {
    if ($value1 == $value2) {
    $commonValues[] = $value1;
    break;
    }
    }
    }

    print_r($commonValues); // 输出:Array ( [0] => 4 [1] => 5 )
    “`

    3. 使用`array_intersect()`和`array_values()`函数获取结果
    上面的方法会返回一个包含相同值的数组,但是键名可能不是连续的。如果需要得到一个连续的索引数组,可以使用`array_values()`函数对结果数组进行重新索引。

    “`php
    $array1 = [1, 2, 3, 4, 5];
    $array2 = [4, 5, 6, 7, 8];
    $intersect = array_intersect($array1, $array2);
    $commonValues = array_values($intersect);

    print_r($commonValues); // 输出:Array ( [0] => 4 [1] => 5 )
    “`

    总结:
    以上方法提供了判断两个数组中相同的值的几种常见方式。根据具体需求选择合适的方法即可。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部