Php 如何使用名称的可变部分搜索数组键?
我有两个阵列:Php 如何使用名称的可变部分搜索数组键?,php,Php,我有两个阵列: $arr1 = [ 'g_0_q_2345' => [ 'aaa' => 'bbb' ], 'g_0_q_5555' => [ 'ccc' => 'ddd' ], 'g_0_qc_2222' => [ 'eee' => 'fff' ] ]; $arr2 = [ 'g_0_q_2345' => 1111, 'g_1_q_2
$arr1 = [
'g_0_q_2345' => [
'aaa' => 'bbb'
],
'g_0_q_5555' => [
'ccc' => 'ddd'
],
'g_0_qc_2222' => [
'eee' => 'fff'
]
];
$arr2 = [
'g_0_q_2345' => 1111,
'g_1_q_2345' => 2222,
'g_0_q_5555' => 3333
];
foreach ($arr1 as $key => $value) {
}
我必须使用$arr1中的数组键来搜索$arr2中的值。$arr2中的数组键有一个变量部分(g_0_*,g_1_*,g_2_*,…
),我在$arr1中没有它(只有g_0_*
)。例如,对于键g_0_q_2345
我想搜索值1111
和2222
。在$arr2中搜索值的最简单和最理想的方法是什么?请尝试,并告诉我它是否适合您
$arr1 = [
'g_0_q_2345' => [
'aaa' => 'bbb'
],
'g_0_q_5555' => [
'ccc' => 'ddd'
],
'g_0_qc_2222' => [
'eee' => 'fff'
]
];
$arr2 = [
'g_0_q_2345' => 1111,
'g_1_q_2345' => 2222,
'g_0_q_5555' => 3333
];
$keys1 = array_keys($arr1);
$keys2 = array_keys($arr2);
$search_keys = array_unique(array_merge($keys1,$keys2));
$result = [];
foreach($arr2 as $key=>$val){
if(in_array($key, $search_keys)){
$result[] = $val;
}
}
print_r($result);
是否要从
$arr2
中获取密钥的第一部分g_0
,从$arr1
中获取密钥的第二部分q_2345
,并从$arr2
中获取值?@Omarabas,是的