2009-07-15 37 views

Trả lời

21

Dưới đây là một cách:

$print=preg_replace('/^([^,]*).*$/', '$1', $print); 

Một

list($firstpart)=explode(',', $print); 
+3

Một regex có vẻ như một chút overkill cho thao tác chuỗi đơn giản? – schmilblick

+3

Regex là một chút của một giải pháp canon-bóng cho vấn đề muỗi –

+0

Tôi thích ví dụ thứ hai của bạn. Đó là một cách thông minh để có được xung quanh mà bạn không thể sử dụng phát nổ (',', $ in) [0]. Tôi đã sử dụng array_shift, nhưng tôi thích danh sách ý tưởng tốt hơn. –

9

này nên làm việc cho bạn:

$r = (strstr($print, ',') ? substr($print, 0, strpos($print, ',')) : $print); 
# $r contains everything before the comma, and the entire string if no comma is present 
+2

làm việc này f hoặc ví dụ đã cho, nhưng sẽ thất bại nếu chuỗi không chứa dấu phẩy. –

+1

Ah, đúng vậy! Sửa đổi mã để xử lý đó. – schmilblick

6

Bạn có thể sử dụng một biểu thức chính quy, nhưng nếu nó luôn luôn sẽ là một cặp đôi duy nhất với một dấu phẩy, tôi chỉ muốn làm điều này:


$printArray = explode(",", $print); 
$print = $printArray[0]; 
+3

Bạn không có nghĩa là $ printArray [0]? –

+1

Có, tôi đã sửa nó. –

3
$string="50 days,7 hours"; 
$s = preg_split("/,/",$string); 
print $s[0]; 
+0

tôi không thể tưởng tượng tại sao điều này lại bị bỏ phiếu. để cử tri xuống, chăm sóc để giải thích? – ghostdog74

+0

Có thể đó là vì bạn đã sử dụng preg_split(), điều này có quá mức cần thiết? –

+1

tôi không nghĩ rằng nó quá mức cần thiết. nó giải quyết được vấn đề phải không. – ghostdog74

3

Bạn cũng có thể sử dụng current chức năng:

$firstpart = current(explode(',', $print)); // will return current item in array, by default first 

chức năng cũng khác từ gia đình này:

$nextpart = next(explode(',', $print)); // will return next item in array 

$lastpart = end(explode(',', $print)); // will return last item in array 
Các vấn đề liên quan