Это должно делать то, что вам нужно:
$str= "key:surname +++ value:Tesla|||key:name +++ value:Nikola|||key:age +++ value:86|||";
preg_match_all("/key:(.*?) \+\+\+ value:(.*?)\|\|\|/", $str, $out);
$out = array_combine($out[1], $out[2]) ;
print_r($out);
Как уже упоминалось другими, хотя, если вы тот, кто хранит данные таким образом, есть много лучших способов хранения данных, включая сериализациюи JSON, который вы, возможно, захотите изучить.