PHP数组组合超出了内存限制

时间:2015-09-28 13:45:12

标签: arrays combinations

我有这个PHP代码来生成给定数组的所有组合

<?php 
function pc_array_power_set($array) {
    #http://docstore.mik.ua/orelly/webprog/pcook/ch04_25.htm
    // initialize by adding the empty set
    $results = array(array( ));

    foreach ($array as $element)
        foreach ($results as $combination)
            array_push($results, array_merge(array($element), $combination));

    return $results;
}

$set = array('A', 'B', 'C');
$power_set = pc_array_power_set($set);
?>
<pre>
<?php

print_r($power_set);

?>
</pre>

它运行正常,但是如果我想为88个元素生成组合,在进程中它会在内部创建数组,这会变得越来越大,超出内存限制......有什么办法可以避免这种情况吗?例如,当生成新组合时,执行一些操作,然后继续操作而不将此值保存在数组中。

0 个答案:

没有答案