php数组组合值直到达到字符串限制

php数组组合值直到达到字符串限制,php,arrays,Php,Arrays,我有一个带有字符串的数组,字符串具有一定长度的字符: Array ( [0] => foo [1] => bar [2] => hello [3] => world [4] => i [5] => great ) 排列 ( [0]=>foo [1] =>条 [2] =>你好 [3] =>世界 [4] =>i [5] =>太好了 ) 我需要将这些值组合成块,直到达到某个字符串长度限制 例如,最大字符数为6 所以新的

我有一个带有字符串的数组,字符串具有一定长度的字符:

Array ( [0] => foo

[1] => bar

[2] => hello

[3] => world

[4] => i

[5] => great

) 排列 ( [0]=>foo

[1] =>条

[2] =>你好

[3] =>世界

[4] =>i

[5] =>太好了

) 我需要将这些值组合成块,直到达到某个字符串长度限制

例如,最大字符数为6

所以新的数组应该是这样的

Array ( [0] => foobar [1] => hello [2] => worldi [3] => great ) 排列 ( [0]=>foobar [1] =>你好 [2] =>世界 [3] =>太好了 ) “Foo”和“Bar”、“i”和“world”合并,因为它不超过允许的最大字符数限制6。 但是“Hello”不能,因为组合字符限制超过6


我不知道该怎么做。

非常简单:

// YOUR ARRAY
$array = array('foo', 'bar', 'hello', 'world', 'i', 'great');

// STRING CONTAINING YOUR ARRAY VALUES CONCATENATED
$alltogheter = implode("", $array);

// NEW ARRAY FROM YOUR STRING (SPLIT BY 6 CHARS)
$newarray = str_split($alltogheter, 6);
简单:

$arr=array('foo','bar','hello','world','i','great');
$limit=6;
$result=数组(“”);//一些黑客
$cur_key=0;//一些黑客
foreach($arr作为$word){

if(strlen($result[$cur_key])+strlen($word)数组函数的存在是有原因的。什么数组函数?原因是什么?你是用foreach手动操作的,strlen和if.inpode和str_split是你的朋友。你的函数甚至不做OP想要的。它不是“我的”函数。它是php的。你应该再试一次。你函数的结果:
array(4){[0]=>string(6)“foobar”[1]=>string(6)“hellow”[2]=>string(6)“orldig”[3]=>string(4)“reat”}
没错。我在OP的数组中没有看到任何空格。OP想要
[1]=>hello[2]=>worldi
你给他:
[1]=>string(6)“hellow”[2]=>string(6)“orldig”
。您知道您的代码返回的结果与OP想要的结果不一样吗?是的,我可以读取:我需要将这些值组合成块,直到达到某个字符串长度限制。例如,最大字符数为6
$arr = array('foo','bar','hello', 'world', 'i', 'great');
$limit = 6;
$result = array(''); // some hack
$cur_key = 0;        // some hack
foreach ($arr as $word) {
    if (strlen($result[$cur_key]) + strlen($word) <= $limit) {
        $result[$cur_key] .= $word;
    } else {
        $result[] = $word;
        $cur_key++;
    }
}