Veja se ficar melhor para você:
function juntaIndincesDeUmArrayRecursivo($arr, &$novoArray)
{
foreach($arr as $chave => $elemento){
if(is_array($elemento)){
juntaIndincesDeUmArrayRecursivo($elemento, $novoArray);
}
if(array_key_exists($chave, $novoArray)){
$novoArray[$chave] .= $arr[$chave] . ' ';
}
}
return $novoArray;
}
$arr = [
[
"NMLOCAL"=> "Banheiro | Banheiro",
"NMCRITERIOTARGERCHK"=> "Não foi trocado o papel higiênico"
],
[
"NMLOCAL"=> "Banheiro | Banheiro",
"NMCRITERIOTARGERCHK"=> "A pia está suja"
],
[
"NMLOCAL"=> "Banheiro | Banheiro",
"NMCRITERIOTARGERCHK"=> "Não foi colocado outro saco de lixo"
]
];
$indices = ['NMLOCAL' => '', 'NMCRITERIOTARGERCHK'=> '' ];
$cc = juntaIndincesDeUmArrayRecursivo($arr, $indices);
var_dump($cc);
São dois parâmetros nessa função, o primeiro $arr é o array sobre o qual vc quer iterar e o segundo parametro $indices é um array com os quais indices vc quer obter.
No foreach tem dois ifs. O primeiro verifica se o elemento é um array e caso seja chama a função novamente até cair no segundo if que faz a verificação se existem chaves iguais em ambos arrays ($arr e $indices) e caso exista concatena o valor de $arr em $indices. Essa solução é mais flexivel pq vc pode trabalhar com quaisquer indices e caso não queira só concatenar, mas sim por uma virgula ou outra coisa dá para alterar.
Mas não use essa solução no dia a dia, por que pode ter bugs, é só de caráter didático para vc ter uma noção de como juntaria esses indices.