动态数组覆盖


Dynamic Array Overwriting

我是数组的新手,我有解密函数和sql查询。过程是我在数据库中查询并返回数组中的$get,如下所示:

array (size=1)
0 => 
 array (size=3)
   'Username' => string 'joenefloresca' (length=13)
   'MiddleName' => string 'Estero' (length=6)
   'Email' => string 'joenefloresca@gmail.com' (length=23)

我想要的是使用我的decopyt函数(数据是加密的,上面只是一个例子)。当我解密时我希望它用解密的值覆盖$get数组。我可以这样做,

foreach( $get as $key => $result )
{    
 $get[$key]['Username'] = $decr->decrypt($result['Username']);
 $get[$key]['MiddleName'] = $decr->decrypt($result['MiddleName']);
 $get[$key]['Email'] = $decr->decrypt($result['Email']);
}

但如果我的字段(如用户名、中间名、电子邮件)在sql查询中是固定的,我可以这样做,如果它是动态的?查询中的字段由用户定义,例如,如果用户名是唯一的字段怎么办?还是仅用户名和电子邮件?如何用只包含选定字段的解密数组覆盖数组?

谢谢。

如果不想显式设置所需的索引,只需在其中嵌套另一个循环:

foreach($get as $key => $result) {
    foreach($result as $k => $val) { // will loop for each piece/copy of `$result`
        $get[$key][$k] = $decr->decrypt($val);
    }
}