php объединяет значения ключей массива?
Я хочу объединить два массива в один массив, но я хотел бы сохранить значения ключей одинаковыми и накапливать их значения в один.
Используя PHP, я ищу что-то вроде этого:
//inputs
array(
cat => 4,
dog => 3,
bug => 6
);
array(
cat => 2,
dog => 5,
bug => 9,
ant => 3
);
//output
array(
cat => 6,
dog => 8,
bug => 15,
ant => 3
);
3 ответа
Вы можете добавить массивы, добавив каждый из индексов: (это предполагает, что ваш первый массив - array1 и т. Д.)
<?php
for ($i = 1; $i <= 4; $i ++) {
$array3[i] = $array1[i] + $array2[i];
}
?>
Предполагая, что в каждом из ваших массивов есть 4 переменные.
function func(&$value, $key) {
$value = (isset($value[1]) ? $value[0] + $value[1] : $value[0]);
}
$new_array = array_merge_recursive($array1, $array2);
array_walk($new_array, 'func');
print_r($new_array);
$final_array = array ();
// u can iterate and get the name of the key while doing so, like so
// add the first array
foreach ($array1 as $prop=>$val)
{
$final_array[$prop]+=$val;
}
//add the second array
foreach ($array2 as $prop=>$val)
{
$final_array[$prop]+=$val;
}
//result is in final_array
//or more efficiently, just add the second to the first
foreach ($array2 as $prop=>$val)
{
$array1[$prop]+=$val;
}