我想迭代一个数组,并从该数组创建一个字符串。 但是,每个字符串需要具有一定的大小(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';
答案 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);