2013-05-07 57 views
0

我的問題不是很複雜,但我還找不到解決方案。我有一個字符串:過濾器數組或字符串(刪除一些單詞)

$temp_string = '20938999038,0.5,83888999289,0.5,98883888778,0.9'; 

// Meaning syskey, price, syskey, price, syskey, price 

我想刪除價格並只顯示syskey。

我理想的結果:

'20938999038,83888999289,98883888778' 

在此先感謝。

+5

你爲什麼要傷害自己,你不使用數組來代替? – 2013-05-07 13:45:05

+0

使用'explode()'並使用數組。 – kapa 2013-05-07 13:45:38

+0

您需要將您的字符串括在引號中,否則它不是字符串。也可以看看['explode'](http://php.net/explode)和['implode'](http://php.net/implode),它們應該指向正確的方向。 – 2013-05-07 13:45:44

回答

2

你可以試試:

$string = "20938999038,0.5,83888999289,0.5,98883888778,0.9"; 

$new = array(); 
foreach(explode(",", $string) as $k => $v) { 
    $k % 2 or $new[] = $v; 
} 
echo implode(",", $new); // 20938999038,83888999289,98883888778 
+0

讓我試試謝謝 – 2013-05-07 13:53:12

+0

您的解決方案工作巴巴謝謝。 – 2013-05-18 17:59:07

3

您可以通過分隔符

$explode = explode(",", $temp_string); 
unset($explode[1], $explode[3], $explode[5]); 

假設你的字符串始終遵循這個模式explode它。

+1

Thanks.What如果更長或更短的輸入? – 2013-05-07 13:50:03

+1

那麼如果它遵循相同的模式,你可以繼續添加到'unset'命令。也許最好的解決方案是,如果它是所有其他人都做@Baba推薦的內容,並根據循環中的「mod」選擇要存儲的值。 – 2013-05-07 13:51:27