【发布时间】:2014-04-07 08:13:23
【问题描述】:
我正在尝试构建一个需要传递给报表的数组。返回的一些数据具有相似的字段名称,因此我使用下面的函数在合并数组之前为数组键名称添加前缀,但是我得到内存不足异常“致命错误:允许的内存大小为 536870912 字节已用尽(尝试在..”中分配 44 个字节),是否有另一种方法可以在不占用大量内存的数组中为数组键添加前缀?
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]);
【问题讨论】:
-
我的猜测是,在您开始操作数组之前,您正在脚本中执行其他操作,这会占用大量内存。您总共运行了多少查询?
标签: php arrays out-of-memory runtime-error