2011-06-16 91 views
0

我有逗號分隔的列表,並且希望從列表中刪除1的第一個匹配項,還刪除了將該值分隔開的任何額外逗號。這將如何完成?刪除第一個匹配項

這是字符串:

$str = '1,1,2,3,4,5,6,7,8,9,10'; 

我需要更換第一1所以它看起來是這樣的:

$str = '1,2,3,4,5,6,7,8,9,10'; 

我需要刪除多餘的逗號,因爲數字鏈接到在MySQL DB中的頁面上顯示的項目。

+0

你能告訴一個現實世界的例子? – 2011-06-16 20:44:50

回答

3
$search = 1; 
$items = explode(',', $csvString); 
if (($index = array_search($search, $items)) !== false) 
    unset($items[$index]); 
$csvString = implode(',', $items); 
+0

您不處理1不在數組中的情況。編輯:你已經編輯了你的答案。 – Hammerite 2011-06-16 20:48:19

+0

@Hammerite:我不知道,當你寫這個評論時,但我確實:這就是'if'的東西。編輯:是:) – KingCrunch 2011-06-16 20:49:15

+0

完美!謝謝!我不能再接受3分鐘的答案,但我會接受它。 – 2011-06-16 20:54:55

1

這裏有一個正則表達式來刪除1和任何鄰國,的

$result = preg_replace('/(,|^)1(,|$)/', '$2', $subject, 1); 

它應該比爆炸更快/爆