Есть массив bestliker со значениями array(3) { [23946139]=> int(5) [2582866]=> int(5) [156444354]=> int(4) } и массив bestcommentator array(4) { [23946139]=> int(4) [2582866]=> int(6) [156444354]=> int(4) [25828612]=> int(8) }
Я хочу получить массив result array(4) { [23946139]=> int(9) [2582866]=> int(11) [156444354]=> int(8) [25828612]=> int(8) }
У меня получилось сложить только значение value если key равны.
$result = array();
foreach ($bestliker as $key => $value) {
$result_count_liker_id = $key;
$result_count_liker = $value;
if ($result_count_liker > 0) {
foreach ($bestcommentator as $key2 => $value2) {
$result_count_comment_id = $key2;
$result_count_comment = $value2;
if ($result_count_liker_id == $result_count_comment_id ) {
$result= $result_count_liker + $result_count_comment;
var_dump($result);
}
}
}
}
Вам нужно использовать isset, чтобы проверить, существует ли переменная
Адаптация ответа от сюда:
$result = array();
$input= array($bestliker,$bestcommentator);
array_walk_recursive($input, function($item, $key) use (&$final){
$final[$key] = isset($final[$key]) ? $item + $final[$key] : $item;
});
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости