3

カンマ区切りの文字列があり、最初の100エントリ(100番目のカンマを含まない)を1つの文字列として使用したい。

たとえば、私が文字列を持っていた場合

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

そして、問題は最初の3つのエントリを取得することでした。目的の結果文字列は、

a,b,c
4

4 に答える 4

4

explode / implodeの使用:

$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

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 に答える
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 に答える
0

1つの方法は、文字列をコンマの後に分割し、最初の100個のインデックスをまとめる(コンマ区切り)ことです。この前に、count(array)が100より大きいか小さいかを確認する必要があります。

于 2012-05-11T10:51:35.370 に答える