1

重複の可能性:
文字列から数字を取得する

私はこのような文字列を持っています -

[ [ -2, 1/2 ], // 1/2 represents one half

数字を取得して配列に入れたいと思います。配列は次のようになります。

array(
  [0] => -2,
  [1] => 1/2
)

これを行う最善の方法は何ですか?

より徹底した例 -

[ [ -2, 1/2, 4, 8 ],
  [ 5,  1/2, 1, -4/3 ],
  [ -2, 7/2, 4, 4 ],
  [ -2, 1/2, -3, 2 ] ]

私はこの行列を行ごとに調べており、各行の配列に数値を抽出したいと考えています。

この質問は、以前に尋ねた質問と非常によく似ています -文字列から数字を取得する

違いは、数値に小数点がないことです。代わりに、非整数は分数として表されます。

4

1 に答える 1

3

preg 構文を処理してみてください。preg 式は単純です: /(-?\d+(?:\/\d+)?)/.

preg_match_all( '/(-?\d+(?:\/\d+)?)/', $string, $matches);

// given :
$str = '[ [ -2, 1/2, 4, 8 ],
  [ 5,  1/2, 1, -4/3 ],
  [ -2, 7/2, 4, 4 ],
  [ -2, 1/2, -3, 2 ] ]';

// outut :
$matches = array (
  0 => 
  array (
    0 => '-2',
    1 => '1/2',
    2 => '4',
    3 => '8',
    4 => '5',
    5 => '1/2',
    6 => '1',
    7 => '-4/3',
    8 => '-2',
    9 => '7/2',
    10 => '4',
    11 => '4',
    12 => '-2',
    13 => '1/2',
    14 => '-3',
    15 => '2',
  ),
  1 => 
  array (
    0 => '-2',
    1 => '1/2',
    2 => '4',
    3 => '8',
    4 => '5',
    5 => '1/2',
    6 => '1',
    7 => '-4/3',
    8 => '-2',
    9 => '7/2',
    10 => '4',
    11 => '4',
    12 => '-2',
    13 => '1/2',
    14 => '-3',
    15 => '2',
  ),
);
于 2012-09-10T12:33:30.723 に答える