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

时间:2015-10-10 17:38:13

标签: php arrays

我有一个字符串,其中包含一定长度的字符:

Array
(
    [0] => 

foo

[1] =>

bar

[2] =>

hello

[3] =>

world

[4] =>

i

[5] =>

great

)

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

例如,最大字符数为6

所以新数组看起来像这样

Array
(
    [0] => foobar
    [1] =>  hello
    [2] => worldi
    [3] => great
)

"富"和" Bar","我"和#34;世界"合并,因为它不超过6个最大允许的char限制。 然而"你好"不要因为合并的限额超过6。

无法绕过如何去做。

2 个答案:

答案 0 :(得分:2)

易:

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

答案 1 :(得分:0)

非常简单:

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