2009-09-07 34 views
8

Có cách nào nhanh (phương thức hiện có) Ghép phần tử mảng thành chuỗi bằng dấu ',' làm dấu tách không? Cụ thể là tôi đang tìm kiếm một dòng duy nhất của phương pháp thay thế như sau thói quen:PHP: Nối phần tử mảng thành chuỗi bằng dấu ',' làm dấu phân cách

//given ('a','b','c'), it will return 'a,b,c' 
private static function ConstructArrayConcantenate($groupViewID) 
{ 
    $groupIDStr=''; 
    foreach ($groupViewID as $key=>$value) { 
     $groupIDStr=$groupIDStr.$value; 
     if($key!=count($groupViewID)-1) 
      $groupIDStr=$groupIDStr.','; 
    }  

    return $groupIDStr; 
} 

Trả lời

35

Đây chính là điều PHP implode() fu nction là cho.

Hãy thử

$groupIDStr = implode(',', $groupViewID); 
+0

Tuyệt vời. Có một biến thể nào có 'implode', nhưng bắt đầu từ' $ groupViewID [3] 'và đi đến cùng? Cảm ơn! – Olie

+1

Những gì bạn cần làm là tạo một mảng mới chứa tất cả mọi thứ từ '$ groupViewID [3]' đến cuối, và cung cấp điều đó để implode. Trong ví dụ trên, bạn chỉ có thể thay thế '$ groupViewID' bằng' array_slice ($ groupViewID, 3) '. – Artelius

+0

Đó chính xác là những gì tôi đang tìm kiếm; cảm ơn! :) – Olie

6

implode()

$a = array('a','b','c'); 
echo implode(",", $a); // a,b,c 
6
$arr = array('a','b','c'); 
$str = join(',',$arr); 

tham gia là một bí danh cho nổ tung, tuy nhiên tôi thích nó vì nó có ý nghĩa hơn đối với những từ Java hay Perl nền (và những người khác).

+0

Mặc dù tham gia là chính xác là tốt, tôi nghĩ rằng hầu hết các nhà phát triển PHP được sử dụng để nhìn thấy implode thay thế. :) – carl

+1

@Carl Vondrick - tất cả các lý do khác để sử dụng join() IMO, nhưng tôi có thể hiểu rằng các nhà phát triển PHP muốn sử dụng implode(), vì nó * làm * âm thanh mát hơn. – karim79

1

Hàm implode() là cách tốt nhất để thực hiện việc này. Ngoài ra, đối với việc lắc chủ đề liên quan, bạn có thể sử dụng hàm explode() để tạo mảng từ văn bản như sau:

$ text = '18: 09: 00 '; $ t_array = explode (':', $ text);

1

Bạn có thể sử dụng implode() ngay cả với dấu phân cách trống: implode(' ', $value); khá tiện lợi.

Các vấn đề liên quan