我试图建立一个需要传递给报表的数组。返回的一些数据具有相似的字段名称,所以即时通过使用下面的函数在数组合并之前向数组键名称添加前缀,但是出现内存不足异常“致命错误:允许的内存大小为536870912字节已耗尽(尝试过分配44个字节)in ..“,是否有另一种方法为阵列中的数组键添加前缀,而不会使用大量内存?致命错误:允许的内存大小536870912字节用尽
function prefixArrayKeys(&$_array,$prefix){
foreach($_array as $k=>$v){
$nk = $prefix.$k;
$nv = $v;
array_push($_array, array($nk=>$nv));
unset($_array[$k]);
}
var_dump($_array);
}
到函数的调用:
$aSQL = "select sex, a_number, to_char(b_dtm, 'DD/MM/YYYY') b_dtm from atable where a_id = ".$ped_array[1]['D']."";
execute_sql($aSQL,$rsGTYPE);
prefixArrayKeys(&$rsGTYPE[0],"D");
if(count($rsGTYPE) > 0) $rowdata[0] = array_merge($rowdata[0],$rsGTYPE[0]);
我的猜测是你在脚本中做了一些其他的事情,在你开始操作数组之前,它正在使用大量的内存。总共运行多少个查询? – rebroken