0

文字列がある場合:

123+0,456+1,789+2,

私は次のことができることを理解しています:

$test = 123+0,456+1,789+2,;
$test = explode(",", $test);

これにより、「,」の間の各セクションの配列が作成されます。

次に、領域の各部分で「+」を爆発させるにはどうすればよいですか? どうすればアクセスできますか?

これはおそらく非常に単純な質問だと思いますが、私が試したことはすべて失敗しました。

ありがとうございました。

4

5 に答える 5

3

なぜ再び爆発を使わないのですか?今回は区切り文字として「,」ではなく「+」を使用します。

$test = 123+0,456+1,789+2,;
$test = explode(",", $test);

foreach($test as $test_element){
    $explodedAgain = explode("+", $test_element);
    var_dump($explodedAgain);
}
于 2013-05-30T15:25:29.357 に答える
2
$test = "123+0,456+1,789+2,";
$test2 = explode(",", $test);
foreach($test2 as &$v) {
    $v=explode("+", $v);
}

これにより多次元配列が作成され、次の方法でアクセスできます。

$test2[1][0]; // =456
于 2013-05-30T15:26:46.677 に答える
0
preg_match_all('/((\d+)\+(\d)),+/', $test, $matches);
var_export($matches);

array (
    0 =>
    array (
        0 => '123+0,',
        1 => '456+1,',
        2 => '789+2,',
    ),
    1 =>
    array (
        0 => '123+0',
        1 => '456+1',
        2 => '789+2',
    ),
    2 =>
    array (
        0 => '123',
        1 => '456',
        2 => '789',
    ),
    3 =>
    array (
        0 => '0',
        1 => '1',
        2 => '2',
    ),
)

主な部分は $matches[1] にあります ("," で分割) - キー 1 の下の結果の場合、二次的な分割は $matches[2][1] と $matches[3][1] にあります

于 2013-05-30T15:33:39.170 に答える