私はこれらの文字列を持つことができます:
- 「ボリューム昇順、エディション降順」
- "ボリューム ASC、他の列の desc、列 x DESC"
次のような配列を取得したい:
- array( 'volume', 'asc', 'edition', 'desc' );
- array( 'volume', 'asc', 'othercolumn', 'desc', 'columnx', 'desc' );
regexp/preg_match 関数でそれに到達する方法は?
私はこれらの文字列を持つことができます:
次のような配列を取得したい:
regexp/preg_match 関数でそれに到達する方法は?
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
)
PHP SQL Parserなどの解析を使用する方が良い方法です。
$str = 'volume asc, edition desc';
$chars = preg_split('/ /', $str);
print_r($chars);
Array ( [0] => volume [1] => asc, [2] => edition [3] => desc )
strtolower 関数を使用して、各文字列を小文字に変換できます