我有2个数组,我想使用第一个数组中的键从第二个数组中搜索匹配的键,然后从第二个数组中返回那些键。表2中的键不变,固定数量为2k。在表1中,键有所变化,但除了“ {action:id}”
几乎相同 $arrayOne = [
'/Intermediary/contract//bank-accounts'
'/Manager/action//bank-bills']
$arrayTwo = [
'/Intermediary/contract/{contract:id}/bank-accounts',
'/Manager/action/{action:id}/bank-bills',
...
..
.etc(200keys)]
到目前为止,我已经尝试过其他方法,
foreach ($array1 as $key => $value) {
$results = preg_grep('/$key/', $array2);
}
这些是值,而不是示例数组中的键。如果您确实需要按键,那么答案将略有不同。
首先从{.....}
中删除所有$array2
,然后计算与$array1
的交点(相同的项)。由于键已保留,因此您可以计算替换数组和$array2
的交集:
$result = array_intersect_key(
array_intersect(preg_replace('/\{[^}]+\}/', '', $array2), $array1),
$array2
);