2012-02-26 45 views
0

我讓每個數組中設置一個隨機字符串index.And我想給他們一個很好的pattern.Better,如果我在一個例子來說明我的問題: 讓我的數組是這樣的:字符串Manupulaiton PHP

    Array 
         { 
         [0]=>A Man of with Dignity 
         [1]=>A supplier *Coming* 
         [2]=>Break the "Glasses" 
         [3]=>Broken 'law' 
         } 

我期待了起來就是:

     Array 
         { 
           [0]=>a-man-with-dignity 
           [1]=>a-supplier-coming 
           [2]=>break-the-glasses 
           [3]=>broken-law 
         } 

意味着我要添加「 - 」每個字的中間,並希望他們在低case.And如果有必須清除任何其他特殊字符太。 「 - 」

感謝您閱讀

+0

什麼是你的問題?你編寫了一個解決方案,它沒有給出正確的輸出?此外,你的程序的輸出是什麼? – erisco 2012-02-26 07:53:24

+0

雅我試圖用preg_replace和strtolower來得到輸出..但不能移動* *像字符我的字符串。 – 2012-02-26 08:02:09

+0

這是一個[網站](http://cubiq.org/the-perfect-php-clean-url-generator),它提供了一個非常詳細的「slug」函數示例。用它循環每個數組項。 – imm 2012-02-26 07:59:46

回答

0

使用strtolower()preg_replace()

$array = array("A Man of with Dignity", 
       "A supplier *Coming*", 
       "Break the \"Glasses\"", 
       "Broken 'law'" 
      ); 

foreach ($array as &$item) { 
     $item = preg_replace('/\W/', '-', strtolower($item)); 
     $item = preg_replace('/-+$|^-+/', '', $item); 
     $item = preg_replace('/-+/', '-', $item); 
} 

print_r($array); 

輸出:

 
Array 
(
    [0] => a-man-of-with-dignity 
    [1] => a-supplier-coming 
    [2] => break-the-glasses 
    [3] => broken-law 
) 

演示:http://ideone.com/EvCSr

+0

對於單個字符串,它輸出如下所示:a-s​​upplier - coming- – 2012-02-26 08:11:46

+0

@ sohel14_cse_ju通過示例和演示鏈接更新了答案。 – fardjad 2012-02-26 08:28:39

+0

偉大的幫助男人..感謝很多.. – 2012-02-26 08:40:34

1

使用正則表達式來剝離非字母數字字符,str_replace函數與替代空間和

function slugify(&$item){ 

    $item = preg_replace('/[^A-Za-z0-9 ]/', '', $item); 
    $item = strtolower($item); 
    $item = str_replace(' ', '-', $item); 

} 

array_walk($array, 'slugify'); 

或者在源代碼看起來如WordPress的,看到一個更復雜的實現,處理的東西一樣多的空間和類似的怪事

+0

我想知道'一個人是否適合所有季節',會不會讓它成爲'一人四季'? – 2012-02-26 08:19:56

+0

a-man-for-all-season – 2012-02-26 08:27:06