2012-05-05 43 views
0

我能有這些字符串:正則表達式解析一個mysql排序依據串

  1. 「量遞增,版遞減」
  2. 「卷ASC,othercolumn遞減,columnx DESC」

我想獲得陣列這樣的:

  1. 陣列( '音量', 'ASC', '編輯', '遞減');數組'('volume','asc','othercolumn','desc','columnx','desc');

如何使用正則表達式/ preg_match函數來達到該目的?

回答

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 
) 
+0

這和如@ Vaichidrewar在他的回答中所述,他可以使用'strtolower'將全部轉換爲小寫。它可以這樣調用:'array_walk('strtolower',$ res)' – Lumbendil

+0

完美!謝謝 –

+0

@MarcoPanichi:不客氣。 – Toto

-1
$str = 'volume asc, edition desc'; 
$chars = preg_split('/ /', $str); 
print_r($chars); 

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

您可以將每個字符串轉換使用用strtolower功能

+0

我可以知道爲什麼這個答案下投? – vaichidrewar