Temo non esista una funzione che faccia questo. L'unica idea che mi viene in mente è farlo a mano con la unset()
Una bozza per far capire:
Codice PHP:
<?php
function ModificaArray(&$array, $mainKey, $oldKey, $newKey, $newVal = null)
{
if(array_key_exists($oldKey, $array[$mainKey]) === true)
{
$array[$mainKey][$newKey] = $array[$mainKey][$oldKey]; //copio il vecchio valore se esiste
unset($array[$mainKey][$oldKey]); //elimino il vecchio indice
}
else
{
$array[$mainKey][$newKey] = $newVal; //nuovo valore, semplicemente lo creo
}
}
$tuoArray = array("nome_principale" => array("elemento1" => true, "elemento2" => false), "nome_principale2" => array("elemento1" => false, "elemento2" => false)) ;
ModificaArray($tuoArray, "nome_principale", "elemento1", "elemento3");
var_dump($tuoArray);
Ciao!