【问题标题】:Find values that are present in all arrays (PHP) [duplicate]查找所有数组中存在的值(PHP)[重复]
【发布时间】:2020-07-02 10:52:52
【问题描述】:

找到所有数组中存在的值的最快方法是什么。

$arrayOfArrays[] = [76,964,34,66775,3,88,99,69];
$arrayOfArrays[] = [69,55,65,657,436,6345,8654];
$arrayOfArrays[] = [54,543,496,3455,47556,69,234,436557];
$arrayOfArrays[] = [4564536,4543,777,3445,43768,2334,69,35,574];

预期输出为[69]

【问题讨论】:

标签: php arrays


【解决方案1】:

使用array_intersect

$arrayOfArrays[] = [76,964,34,66775,3,88,99,69];
$arrayOfArrays[] = [69,55,65,657,436,6345,8654];
$arrayOfArrays[] = [54,543,496,3455,47556,69,234,436557];
$arrayOfArrays[] = [4564536,4543,777,3445,43768,2334,69,35,574];

$intersect = array_intersect(
    $arrayOfArrays[0],$arrayOfArrays[1],$arrayOfArrays[2],$arrayOfArrays[3]
);

或者递归地喜欢@Mr J 的回答

$arrayOfArrays[] = [76,964,34,66775,3,88,99,69];
$arrayOfArrays[] = [69,55,65,657,436,6345,8654];
$arrayOfArrays[] = [54,543,496,3455,47556,69,234,436557];
$arrayOfArrays[] = [4564536,4543,777,3445,43768,2334,69,35,574];

$intersect = call_user_func_array('array_intersect', $arrayOfArrays);

【讨论】:

    【解决方案2】:
    $arrayOfArrays[] = [76,964,34,66775,3,88,99,69];
    $arrayOfArrays[] = [69,55,65,657,436,6345,8654];
    $arrayOfArrays[] = [54,543,496,3455,47556,69,234,436557];
    $arrayOfArrays[] = [4564536,4543,777,3445,43768,2334,69,35,574];
    
    $result = call_user_func_array('array_intersect', $arrayOfArrays);
    

    输出为 69

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 2013-10-14
      • 2013-09-07
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 2015-04-12
      • 2017-08-17
      相关资源
      最近更新 更多