基于数组创建X长度的字符串

时间:2012-02-28 20:07:12

标签: php arrays strlen

我想迭代一个数组,并从该数组创建一个字符串。 但是,每个字符串需要具有一定的大小(500字节)。

所以我的数组看起来像是:

Array
(
    [0] => Array
        (
            [name] => shirt
            [price] => 1.25
        )

    [1] => Array
        (
            [name] => car
            [price] => 25.10
        )
    ...
)

$str = "";

foreach($arr as $v) {
    $str .= "<name>".$v['name']."</name>";
    $str .= "<price>".$v['price']."</price>";
}

输出应该是这样的:

str1 = '<name>shirt</name><price>1.25</price><name>car</name><price>25.10</price>...' // until 500 bytes or less. 
str2 = '<name>shirt</name><price>1.25</price><name>car</name><price>25.10</price>...' // until 500 bytes or less. 

//我需要完整的标签。所以我不能有一个看起来像这样的字符串:

str = '<name>flower</name><pri';

2 个答案:

答案 0 :(得分:1)

str_split听起来像个好人。

答案 1 :(得分:1)

将每个细分保存为少于500个字符。

$xml = array();
$str = '';
foreach($arr as $v)
{
    $temp = "<name>".$v['name']."</name>";
    $temp .= "<price>".$v['price']."</price>";

    if(mb_strlen($str . $temp) > 500)
    {
        $xml[] = $str;
        $str = '';
    }
    $str = $temp;
}
$xml[] = $str;

print_r($xml);