0

phpの形式の文字列があります。

somename_XXX_someothername_YYY

XXX& YYY= 整数

次のように、配列で抽出somenameしたいと思います。XXX

array [0] => somename
array [1] => XXX

以下は、それを達成するための私のアプローチです。

$a = array();
$x = 'stack_312_overflow_213';
$a[] = strstr($x, '_', true);
$a[] = strstr(ltrim(strstr($x, '_', false), '_'), '_', true);

私のアプリケーションはこの方法で約10,000以上の文字列をトリミングするため、他のより高速な方法があるかどうかを知りたいと思いました。

PS: 速度やどの機能が最も速いかについてはよくわからないphpので、ここに投稿することを考えました.

4

3 に答える 3

2

爆発してpreg_matchするよりも速い:

list($word, $num) = sscanf($x, '%[^_]_%d');

また、すでに整数として $num を持っています。

爆発を使用する場合は、速度を上げるために 3 に制限してください。また、必要に応じて $num に int をキャストする時間が失われます。

explode('_', $x, 3);
于 2013-07-16T13:39:40.207 に答える
0

使用するだけ$arr = explode('_', $str);で、[0] と [1] スポットの値は、要求した最初の 2 つの値です。

于 2013-07-16T13:32:14.853 に答える