Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用名称的可变部分搜索数组键?_Php - Fatal编程技术网

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,是的