仅选择数组 1 中且存在于数组 2 中的值

我有两个数组,如下所示,我希望能够仅选择数组 1 中的值并存在于数组 2 中


这是我的第一个数组:


<pre>array(4) {

  [0]=>

  array(1) {

    ["user_id"]=>

    string(1) "1"

  }

  [1]=>

  array(1) {

    ["user_id"]=>

    string(1) "2"

  }

  [2]=>

  array(1) {

    ["user_id"]=>

    string(1) "3"

  }

  [3]=>

  array(1) {

    ["user_id"]=>

    string(1) "4"

  }

}

这是我的第二个数组:


<pre>array(5) {

  [0]=>

  array(1) {

    ["user_id"]=>

    string(1) "5"

  }

  [1]=>

  array(1) {

    ["user_id"]=>

    string(1) "1"

  }

  [2]=>

  array(1) {

    ["user_id"]=>

    string(1) "4"

  }

  [3]=>

  array(1) {

    ["user_id"]=>

    string(1) "4"

  }

  [4]=>

  array(1) {

    ["user_id"]=>

    string(1) "5"

  }

}

我希望找到一种更优雅的方式来做到这一点。


HUWWW
浏览 113回答 1
1回答

鸿蒙传说

Oyedele,所以有一个名为 array_interesect 的 PHP 函数,它只会返回参数中存在的值。<?php$array1 = array("a" => "green", "red", "blue");$array2 = array("b" => "green", "yellow", "red");$result = array_intersect($array1, $array2);print_r($result);?>返回以下内容:Array(    [a] => green    [0] => red)更新: 对于您的情况,您需要使用array_uintersect这是代码// Creating your Arrays$array1 = array(           array('user_id' => '1'),           array('user_id' => '2'),           array('user_id' => '3'),           array('user_id' => '4'),        );$array2 = array(           array('user_id' => '5'),           array('user_id' => '1'),           array('user_id' => '4'),           array('user_id' => '4'),           array('user_id' => '5'),        );// Preforming comparison$intersect = array_uintersect($array1, $array2, 'compareDeepValue');print_r($intersect);// Custom Comparison Functionfunction compareDeepValue($val1, $val2){   return strcmp($val1['user_id'], $val2['user_id']);}这是输出:Array(    [0] => Array        (            [user_id] => 1        )    [3] => Array        (            [user_id] => 4        )
打开App,查看更多内容
随时随地看视频慕课网APP