array_uintersect 计算数组的交集

Jackey PHP 3,263 次浏览 , , 没有评论
  1. $input1 = [
  2. [
  3. 'id' => 4,
  4. 'name' => '44'
  5. ],
  6. [
  7. 'id' => 2,
  8. 'name' => '22'
  9. ],
  10. [
  11. 'id' => 3,
  12. 'name' => '33'
  13. ],
  14. [
  15. 'id' => 1,
  16. 'name' => '11'
  17. ],
  18. ];
  19. $input2 = [
  20. [
  21. 'id' => 5,
  22. 'name' => '55'
  23. ],
  24. [
  25. 'id' => 6,
  26. 'name' => '66'
  27. ],
  28. [
  29. 'id' => 1,
  30. 'name' => '11'
  31. ],
  32. [
  33. 'id' => 4,
  34. 'name' => '44'
  35. ],
  36. ];
  37. $result = array_uintersect($input1, $input2, function ($in, $sv) {
  38. if ($in['id'] == $sv['id']) {
  39. return 0;
  40. }
  41. return $in > $sv ? 1 : -1;
  42. });
  43. print_r($result);

打印结果:

  1. (
  2. [0] => Array
  3. (
  4. [id] => 4
  5. [name] => 44
  6. )
  7.  
  8. [3] => Array
  9. (
  10. [id] => 1
  11. [name] => 11
  12. )
  13.  
  14. )

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Go