gpt4 book ai didi

php - 将字符串转换为一组固定长度的数组

转载 作者:行者123 更新时间:2023-12-03 01:06:02 25 4
gpt4 key购买 nike

我需要将一个字符串转换为一组固定长度的数组。

示例:输入:11111222222333333

我需要输出

[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_splitstr_split 上的内存也都用完了,所以我可能做错了一些事情。一旦我弄清楚我最初的问题是什么,我仍然会标记为已回答。

编辑2:字符串长度实际上是745,982字节,我正在查看压缩长度。

编辑3:我认为字符串太大了。我必须看看是否有一种方法可以在不丢失数据的情况下分解它,因为这实际上是一个小例子,而且它实际上是二进制数据。谢谢大家的解答!

最佳答案

试试这个。我刚刚用 10,000 个单词的字符串进行了测试,它没有耗尽内存:

$array = str_split($string);

// returns $array = Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 2
[6] => 2
[7] => 2
[8] => 2
[9] => 2
[10] => 3
[11] => 3
// and so on
)

然后:

array_chunk($array, 5);

// returns:

[0] => Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
)

[1] => Array
(
[0] => 1
[1] => 2
[2] => 2
[3] => 2
[4] => 2
)

关于php - 将字符串转换为一组固定长度的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com