-1

私は$text_arr="101104105106109111112113114116117120122123124" かなり大きな文字列を持っています

101,104,105それらから3つの数値を分割して保存したい場合、$arrayどうすればよいですか?

私はこれをやってみました:

preg_match_all('/[0-9]{3}$/',"$text_arr",$array); 
4

4 に答える 4

5

これを行う最も簡単な方法は、preg_split()Docsを使用することです。

$result = preg_split('/(\d{3})/', $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

動作するか、結果を確認してください:

Array
(
    [0] => 101
    [1] => 104
    [2] => 105
    [3] => 106
    [4] => 109
    [5] => 111
    [6] => 112
    [7] => 113
    [8] => 114
    [9] => 116
    [10] => 117
    [11] => 120
    [12] => 122
    [13] => 123
    [14] => 124
)
于 2012-12-31T11:30:53.840 に答える
2

これには正規表現を使用できますが、単純な標準関数を使用する方がパフォーマンスが高い場合があります。

$groups = str_split($numbers, 3);//returns array you want

ここでそれについてすべて読んでください

于 2012-12-31T11:54:48.503 に答える
1

この最も単純なコードを選択してください

<?php
    $string = "101104105106109111112113114116117120122123124";
    $parts = str_split($string, 3);
    $res=implode(',',$parts);
    echo($res);
?>
于 2012-12-31T11:39:37.407 に答える
1

式から$ で終わる部分を削除する必要があります。これにより、結果が 1 つだけ返されます。

このようにしてみてください

preg_match_all('/[0-9]{3}/', $text_arr, $array); 

ここでこれが機能していることを確認してください

于 2012-12-31T11:38:17.480 に答える