【发布时间】:2011-10-19 03:49:41
【问题描述】:
我需要将一个字符串转换成一组固定长度的数组。
示例:输入:1111122222333333
我需要输出
[0] =>
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[1] =>
[0] => 2
[1] => 2
[2] => 2
[3] => 2
[4] => 2
以下代码效果很好:
for ($x = 0; $x < count($codedDataArray) - $colWidthSum + 1; $x += $colWidthSum + 1) {
for ($c = 0; $c <= $colWidthSum; $c++) {
$rows[$j][] = $codedDataArray[$z];
$z++;
}
$j++;
}
但是当我给它非常大的字符串时,它会耗尽内存,比如 10959 字节。
是否有我缺少的内置 PHP 函数可以做同样的事情,还是我只需要处理内存问题?
编辑 1:我在 preg_split 和 str_split 上的内存都用完了,所以我可能做错了什么。一旦我弄清楚我最初的问题是什么,我仍然会标记为已回答。
编辑 2:字符串长度实际上是 745,982 字节,我正在查看压缩后的长度。
编辑 3:我认为字符串太大了。我将不得不看看是否有一种方法可以在不丢失数据的情况下分解它,因为这实际上是一个小例子,它实际上是二进制数据。谢谢大家的回答!
【问题讨论】:
-
内存不足或死循环?
-
内存不足。作品在长度为 137 的流上找到,所以我不认为这是一个循环。
-
似乎不应该使用 11k 字符串...
标签: php string optimization