获取所有数组中出现的所有键
Get all the keys presented in all arrays
我有一些数组,例如
$arr[0]=array(k1=>1,k2=>1,k3=>1);
$arr[1]=array(k2=>1,k3=>1,k4=>1);
$arr[2]=array(k3=>1,k4=>1,k5=>1);
所以,我需要获取在所有数组中呈现的所有键(动态地,数组的数量可以不同)。在这种情况下,它是 k3
键。所以结果应该是array('k3'=>1)
我建议可以通过多个循环来实现,但可能还有更简单的方法。
要获取三个数组中的公共元素,可以使用array_intersect()
注意:此函数适用于 普通数组值 而不是普通数组 keys
试试这个:
$key1 = array_flip($arr1);
$key2 = array_flip($arr1);
$key3 = array_flip($arr1);
$intersect = array_flip(array_intersect($key1, $key2, $key3));
您需要函数 array_intersect_key()
:
<?php
$arr1 = array('k1' => 1, 'k2' => 1, 'k3' => 1);
$arr2 = array('k2' => 1, 'k3' => 1, 'k4' => 1);
$arr3 = array('k3' => 1, 'k4' => 1, 'k5' => 1);
print_r(
array_intersect_key($arr1, $arr2, $arr3)
);
输出:
Array
(
[k3] => 1
)
我有一些数组,例如
$arr[0]=array(k1=>1,k2=>1,k3=>1);
$arr[1]=array(k2=>1,k3=>1,k4=>1);
$arr[2]=array(k3=>1,k4=>1,k5=>1);
所以,我需要获取在所有数组中呈现的所有键(动态地,数组的数量可以不同)。在这种情况下,它是 k3
键。所以结果应该是array('k3'=>1)
我建议可以通过多个循环来实现,但可能还有更简单的方法。
要获取三个数组中的公共元素,可以使用array_intersect()
注意:此函数适用于 普通数组值 而不是普通数组 keys
试试这个:
$key1 = array_flip($arr1);
$key2 = array_flip($arr1);
$key3 = array_flip($arr1);
$intersect = array_flip(array_intersect($key1, $key2, $key3));
您需要函数 array_intersect_key()
:
<?php
$arr1 = array('k1' => 1, 'k2' => 1, 'k3' => 1);
$arr2 = array('k2' => 1, 'k3' => 1, 'k4' => 1);
$arr3 = array('k3' => 1, 'k4' => 1, 'k5' => 1);
print_r(
array_intersect_key($arr1, $arr2, $arr3)
);
输出:
Array
(
[k3] => 1
)