0

私はこれらの文字列を持つことができます:

  1. 「ボリューム昇順、エディション降順」
  2. "ボリューム ASC、他の列の desc、列 x DESC"

次のような配列を取得したい:

  1. array( 'volume', 'asc', 'edition', 'desc' );
  2. array( 'volume', 'asc', 'othercolumn', 'desc', 'columnx', 'desc' );

regexp/preg_match 関数でそれに到達する方法は?

4

3 に答える 3

2

preg_splitを使用できます:

$arr = array(
    "volume asc, edition desc",
    "volume ASC, othercolumn desc, columnx DESC"
);
foreach($arr as $str) {
    $res = preg_split('/[ ,]+/', $str);
    print_r($res);
}

出力:

Array
(
    [0] => volume
    [1] => asc
    [2] => edition
    [3] => desc
)
Array
(
    [0] => volume
    [1] => ASC
    [2] => othercolumn
    [3] => desc
    [4] => columnx
    [5] => DESC
)
于 2012-05-05T10:38:26.770 に答える
1

PHP SQL Parserなどの解析を使用する方が良い方法です。

于 2012-05-05T10:32:02.627 に答える
-1
$str = 'volume asc, edition desc';
$chars = preg_split('/ /', $str);
print_r($chars);

Array ( [0] => volume [1] => asc, [2] => edition [3] => desc )

strtolower 関数を使用して、各文字列を小文字に変換できます

于 2012-05-05T10:37:34.363 に答える