3

我有一个逗号分隔的字符串,并希望前 100 个条目(不包括第 100 个逗号)作为单个字符串。

例如,如果我有字符串

a,b,c,d,e,f,g

问题是获得前 3 个条目,所需的结果字符串将是

a,b,c
4

4 回答 4

4

使用爆炸/内爆:

$str     = 'a,b,c,d,e,f,g';
$temp1   = explode(',',$str);
$temp2   = array_slice($temp1, 0, 3);
$new_str = implode(',', $temp2);

使用正则表达式:

$new_str = preg_replace('/^((?:[^,]+,){2}[^,]+).*$/','\1',$str);
于 2012-05-11T10:52:32.247 回答
1

您可以通过查找第 100 个分隔符来做到这一点:

$delimiter = ',';
$count = 100;
$offset = 0;
while((FALSE !== ($r = strpos($subject, $delimiter, $offset))) && $count--)
{
    $offset = $r + !!$count;
}
echo substr($subject, 0, $offset), "\n";

或类似地对其进行标记:

$delimiter = ',';
$count = 100;
$len = 0;
$tok = strtok($subject, $delimiter);
while($tok !== FALSE && $count--)
{
    $len += strlen($tok) + !!$count;
    $tok = strtok($delimiter);
}
echo substr($subject, 0, $len), "\n";
于 2012-05-11T11:24:37.537 回答
1

试试php的explode()函数。

$string_array = explode(",",$string);

遍历数组以获取所需的值:

for($i = 0; $i < sizeof($string_array); $i++)
{
echo $string_array[$i];//display values
}
于 2012-05-11T10:51:30.423 回答
0

一种方法是在逗号后拆分字符串并将前 100 个索引放在一起(逗号分隔)。在此之前,您必须检查 count(array) 是大于还是小于 100。

于 2012-05-11T10:51:35.370 回答