Как сложить значение двух массивов по ключам?

187
01 июня 2018, 11:40

Есть массив 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);
                }
            }
        }
    }
Answer 1

Вам нужно использовать 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;
});
READ ALSO
setcookie() для google chrome. Запускается асинхронно?

setcookie() для google chrome. Запускается асинхронно?

Моя проблема связана с установкой Cookie для отслеживания начала новых сессий пользователей в браузере Google Chrome

223
Yii2 & codeception (Константа из модели)

Yii2 & codeception (Константа из модели)

Условная модель с константой:

186
на php приходит json равный null

на php приходит json равный null

Пытаюсь получить данные в формате json, приходит null

183