Приветствую Я обсчитываю массив данных и формирую массив $total со значениями типа так Код (Text): $t['amount']['income']+=$r['amount']; Но если ключа [amount][income] нет - то выкидывается нотис Приходиться делать избыточный код Код (Text): if(empty($t['amount']['income'])) $t['amount']['income']=$r['amount']; else $t['amount']['income']+=$r['amount']; Я подумал, сделаю я функцию, которая проверяет если такого ключа нет - то создает его. $t - исходный массив. $key передаю через string 'amount[income]=0' Код (Text): function ar($t, $key){ parse_str($key, $k); if(empty($t[$k])) $t[$k]=0; return $t; } parse_str возвращает массив Код (Text): Array ( [amount] => Array ( [income] =>0 ) ) Но тут я завис, а как массив возвращаемый parse_str проверить, есть ли он в исходном массиве $t(если empty вставить) Вероятно я вообще не оптимальным вариантом двигаюсь, посоветуйте как лучше быть?
Ну если нормальная версия php (> 7), то можно так PHP: $t['amount']['income'] = ($t['amount']['income'] ?? 0) + $r['amount'];
https://www.php.net/manual/ru/migration70.new-features.php, например. Ну и в мануале официальном наверняка есть, искать долго. В 7.0 появился, так что уже не новый