У меня есть массив значений ключей, поступающих из одной системы, и я хочу отправить те же значения с разными ключами в другую. То есть у нас есть
$map = [
'sys_a_1' => 'sys_b_1',
'sys_a_2' => 'sys_b_2',
];
$data = [
'sys_a_1' => 'data_1',
'sys_a_2' => 'data_2',
];
, и мы хотим
$result = [
'sys_b_1' => 'data_1',
'sys_b_2' => 'data_2',
];
, и я могу сделать это с помощью al oop:
foreach ($map as $from => $to) {
if (!empty($data[$from])) {
$result[$to] = $data[$from];
}
}
, но это просто раздражение у меня нет array_something()
способа сделать это. array_combine($map, array_intersect_key($data, $map))
почти делает это, но array_intersect_key
не меняет порядок, поэтому все будет в порядке.