我想在数组中的所有嵌套数组中找到重复值。 目前,我的阵列就是这样的。
Array $bigarray = Array (
[431] => Array (
[0] => orange
[1] => apple
[2] => pine
)
[440] => Array (
[0] => orange
[1] => lilly
)
[444] => Array (
[0] => orange
[1] => pine
)
)
我想只提取所有
中的orange
arrays('431','440','444').
你给我一些想法吗?
提前谢谢。
答案 0 :(得分:10)
您可以使用array_intersect()
:
$intersected = null;
foreach ($bigarray as $arr) {
$intersected = $intersected ? array_intersect($arr, $intersected) : $arr;
if (!$intersected) {
break; // no reason to continue
}
}
print_r($intersected);
Array
(
[0] => orange
)
答案 1 :(得分:2)
$inAllChunks = call_user_func_array('array_intersect',(array_values($bigarray)));
var_dump($inAllChunks);
答案 2 :(得分:1)
$output = null;
foreach ( $bigarray as $array ) {
if ( is_null($output) ) {
$output = $array;
continue;
}
$output = array_intersect($output, $array);
if ( empty($output) ) {
break;
// there are no common elements in the array
}
}
var_dump$(output);
答案 3 :(得分:1)
来自文档。
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);