function merge($idKey, $mergeKeys, ...$data) {
$merged = [];
foreach (array_merge(...$data) as $item) {
$id = $item[$idKey];
if (!array_key_exists($id, $merged)) {
$merged[$id] = [
'unique' => true,
'item' => $item,
];
} else {
if ($merged[$id]['unique']) {
$merged[$id]['unique'] = false;
foreach ($mergeKeys as $k) {
$merged[$id]['item'][$k] = [ $merged[$id]['item'][$k] ];
}
}
foreach ($mergeKeys as $k) {
$merged[$id]['item'][$k][] = $item[$k];
}
}
}
return array_column($merged, 'item');
}
$merged = merge('code', [ 'quantity', 'city' ], $arr1, $arr2);
$unique = [];
foreach ($response['data']['items'] as $item) {
// В таком виде будет использоваться последнее значение из массива,
// но вы можете использовать любую логику.
$unique[$item['barcode']] = $item;
}
$unique = array_values($unique);
iptables -I INPUT -p tcp --dport 465 -m state --state NEW -j ACCEPT
service iptables save
/etc/init.d/iptables restart
firewall-cmd --zone=public --add-port=465 /tcp --permanent
service iptables save
iptables -I INPUT -p tcp --dport 465 -j ACCEPT
service iptables save
$questions = [
[
'question' => 'Что такое буфер обмена?',
'answers' => [
'169' => 'Область в памяти',
'170' => 'Специальная папка в файловой системе',
'171' => 'Специальный файл',
'172' => 'Магнитный носитель'
]
],
[
'question' => 'Из каких частей состоит обозначение файла в операционной системе Windows?',
'answers' => [
'177' => 'из трех частей: имени, расширения и доменного имени',
'178' => 'из двух частей: имени и доменного имени',
'179' => 'из двух частей: имени и расширения',
'180' => 'из одной части: имени'
]
]
];
$questions = [
[
'id' => 42,
'text' => 'Что такое буфер обмена?',
'answers' => [
['id' => 169, 'text' => 'Область в памяти'],
['id' => 170, 'text' => 'Специальная папка в файловой системе'],
['id' => 171, 'text' => 'Специальный файл'],
['id' => 172, 'text' => 'Магнитный носитель'],
],
],
]
function get_test_data_result($test_all_data, $result, $post) { ... }