如何将键从一个数组匹配到另一个,并从另一个数组返回键

问题描述 投票:0回答:1

我有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);
    }
php arrays preg-match
1个回答
0
投票

这些是值,而不是示例数组中的键。如果您确实需要按键,那么答案将略有不同。

首先从{.....}中删除所有$array2,然后计算与$array1的交点(相同的项)。由于键已保留,因此您可以计算替换数组和$array2的交集:

$result = array_intersect_key(
    array_intersect(preg_replace('/\{[^}]+\}/', '', $array2), $array1),
    $array2
);
© www.soinside.com 2019 - 2024. All rights reserved.