私は配列の配列を持っています:
(1, 3), (3, 5, 7), (2, 3, 4), (3, 7, 9)
すべてのサブ配列に表示される値を見つける必要があります。この場合、その数値は「3」です。
私が見つけた最も効率的な解決策は O(n^3) で、これを達成するためのより効率的な方法があるかどうか疑問に思っていました。
あなたが試すことができますarray_intersect
:
$output = array_intersect($array1, $array2, $array3, ...);
または自動的に:
$input = array( array(1, 3), array(3, 5, 7), array(2, 3, 4), array(3, 7, 9) );
$output = $input[0];
foreach ( $input as $key => $subarray ) {
if ( $key == 0 ) {
continue;
}
$output = array_intersect($output, $subarray);
if ( empty($output) ) {
break;
}
}
var_dump($output);