Нужно совместить 2 массива в один таким образом чтобы в первом массиве были заменены только те ключи которые присутствуют в массиве 2 или добавлены.То есть нужно заменить DB1 и добавить DB4.DB 2 и 3 не трогать.Подскажите как лучше сделать.
Array1 = array(
'databases' => array(
array(
'name' => 'DB1',
'tables' => array(
array('name' => 'table1'),
array('name' => 'table2'),
array('name' => 'table3'),
)
),
array(
'name' => 'DB2',
'tables' => array(
array('name' => 'table1'),
array('name' => 'table2'),
array('name' => 'table3'),
)
),
array(
'name' => 'DB3',
'tables' => array(
array('name' => 'table1'),
array('name' => 'table2'),
array('name' => 'table3'),
)
)
)
);
Array2 = array(
'databases' => array(
array(
'name' => 'DB1',
'tables' => array(
array('name' => 'table1'),
array('name' => 'table2'),
array('name' => 'table3'),
)
),
array(
'name' => 'DB4',
'tables' => array(
array('name' => 'table1'),
array('name' => 'table2'),
array('name' => 'table3'),
)
),
)
);
foreach($fileConfig['databases'] as $key => $val){
foreach($filteredConfig as $confKey => $confVal){
if($val['name'] == $confVal['name']){
$fileConfig['databases'][$key] = $confVal;
} else{
$fileConfig['databases'][] = $confVal;
}
}
}
Мой вариант не подошел так как кроме как замены массива происходит и добавление одних и тех же постоянно.Как контролировать существование уже данного ключа?
Придется действительно переделать массив чтобы ключами являлись имена бд и тогда применить
foreach($config2['databases'] as $db => $val){
if(array_key_exists($db, $config['databases'])){
$config['databases'][$db] = $val;
}else{
$config['databases'][$db][] = $val;
}
}
Возможно я не правильно интепретировал ваш вопрос Но если вам нужно слить два массива, с условием обновления значений при их сущестовании, то есть встроенная функция array_merge ( меняете последовательность параметров, что переписовался нужный массив ) Хочу отметить, что функция сравнивает сами значения, что вам собственно и нужно.
Структура то у вас одинаковаяя
Я девано решал подобную задачу с помощью данной функции. Так же обратите вние на функцию array_intersect_assoc Но мне кажется я вас гдето не допонял....
Виртуальный выделенный сервер (VDS) становится отличным выбором
Когда много информации то данные не сохраняются в БДПочему так может происходить?
Всем привет! Буду благодарен за пинокПосле логина создается сессия и cookie сроком 1 месяц setcookie 2592000
Здравствуйте, как как удалять куки при переходе на следующую страницу ? То есть мы зашли на страницу siteru/res?id=1 и сохранили id страницы (и сделали...
ЗдравствуйтеДело в том что нужно складывать маленькие числа, такие как 0