1

PHP では、次stringのように、ドットの後にスペースがある場合とない場合があります。

"1. one 2.too 3. free 4. for 5.five "

次のように作成するために使用できる関数は次のarrayとおりです。

array(1 => "one", 2 => "too", 3 => "free", 4 => "for", 5 => "five") 

キーはリスト項目番号です (たとえば、array上記には がありません0)

正規表現が必要だと思いますが、おそらく使用preg_splitまたは類似していますか? 私は正規表現が苦手なので、どんな助けでも大歓迎です。

4

2 に答える 2

2

どうですか:

$str = "1. one 2.too 3. free 4. for 5.five ";
$arr = preg_split('/\d+\./', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($arr);
于 2012-09-29T17:53:35.433 に答える
-1

私は簡単なハックを手に入れました、そしてそれは私にとってはうまくいっているようです

        $string = "1. one 2.too 3. free 4. for 5.five ";

    $text_only = preg_replace("/[^A-Z,a-z]/",".",$string);
    $num_only = preg_replace("/[^0-9]/",".",$string);

    $explode_nums = explode('.',$num_only);
    $explode_text = explode('.',$text_only);

    foreach($explode_text as $key => $value)
    {
        if($value !== '' && $value !== ' ')
        {
            $text_array[] = $value;
        }
    }

    foreach($explode_nums as $key => $value)
    {
        if($value !== '' && $value !== ' ')
        {
            $num_array[] = $value;
        }
    }

    foreach($num_array as $key => $value)
    {
        $new_array[$value] = $text_array[$key];
    }

    print_r($new_array);

テストして、うまく機能するかどうかを教えてください

于 2012-09-29T18:15:17.483 に答える