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


php array combine values until string limit reached

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

<>之前的数组([0] =比;foo

[1] =比;酒吧

[2] =比;

你好[3] =比;世界

[4] =比;

[5] =比;伟大

)之前

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

例如:max char number为6

那么新数组就像这样

<>之前的数组([0] =比;foobar[1] =比;你好[2] =比;worldi[3] =比;伟大的)之前

"Foo"answers"Bar","i"answers"world"合并,因为它不超过6个最大允许字符限制。但是"Hello"不会因为组合字符限制超过6个

我不知道该怎么做

Easy:

$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++;
    }
}

非常简单:

// 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);