-1

我有一个$text_arr="101104105106109111112113114116117120122123124" 相当大的字符串

如果我想从它们中拆分三个数字并将它们101,104,105存储在 .$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

您必须从表达式中删除带有 $ 的结尾,这导致只返回一个结果

试试这样

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

在这里检查这个工作

于 2012-12-31T11:38:17.480 回答
1

选择这个最简单的代码

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