2012-04-29 4 views
1

PHP의 새로운 기능PHP에서 문자열의 마지막 쉼표 제거 방법

문자열의 마지막 쉼표를 제거하고 싶습니다. 어떻게해야합니까? 어떤 도움을 크게 사전에 감사 감사하겠습니다

<?php 
$sub ="economic,maths,science"; 
$cap = explode(",",$sub); 
foreach($cap as $new){ 
    echo ucfirst($new).","; 
    } 
?> 

: 다음은 내 코드입니다.

+0

thnx 모든 노력을 다해 주지만 감사 하긴하지만 충분한 평판이 없기 때문에 투표를 할 수 없습니다. – Sunny

답변

-1
<?php 
$sub = "economic,maths,science"; 
$cap = explode(",",$sub); 
$count = count($cap); 
$i = 1;  
foreach($cap as $newSub){ 
    if($count>$i){ 
     echo ucfirst($newSub).","; 
    }else{ 
     echo ucfirst($newSub); 
    } 
    $i++; 
} 
?> 
1
<?php 
$sub ="economic,maths,science"; 
$cap = explode(",",$sub); 
$cap2 = array(); 
foreach($cap as $new){ 
    $cap2[] = ucfirst($new); 
} 
echo implode(",",$cap2) 
?> 
-1

당신과 같이 루프없이이 작업을 수행 할 수 있습니다

$string = 'test, test, test'; 
$pos = strrpos($string, ','); 

$string[$pos] = ''; 

echo $string; 
-1

간단한 정규 표현식 할 것 :

preg_replace('/,([^,])$/','\1',$str); 
+0

톰 월 터 답으로 이동, 가장 빠른 지금까지. –

1
$sub ="economic,maths,science"; 
var_dump(implode(',', array_map('ucfirst', explode(",", $sub)))); 
0

이것은 하나의 단어 경계와 함께 작동 쉼표가 아닌

preg_replace('~\b(\w+)\b~e', 'ucfirst("\\1")', "economic,maths,science"); 
+0

e 플래그가있는 정규 표현식은 매우 느리고 '내파'로 처리해야하는 상황에서는 정규 표현식을 사용하고 있습니다. – sg3s

+0

전자 플래그 성능에 대한 링크가 있거나 범용 정규식보다 특정 코드 조각을 선호하는 이유가 있습니까? –

+0

성능 문제에 대한 기사를 찾을 수 없지만 문자열에 수행 된 추가/제거와 관련이 있습니다. 그러나 그때조차 [걱정할 다른 문제가있다] (http://stackoverflow.com/questions/3115559/exploitable-php-functions). 하지만 여기에서 주된 문제는 아니며 정규 표현식 엔진을 시작하고 쉼표 사이의 모든 것이 쉼표 사이에 있는지 확인하지는 않습니다 (다른 경계가 있음).이 문제를 더 오래 적용 할 때 다른 문제에 노출됩니다. , 더 복잡한 문자열. – sg3s

2

간단한 트림은 충분하다 : 트림() 함수의 두 번째 매개 변수는 당신이 당신의 문자열뿐 아니라 공백에서 정의 된 문자를 트리밍 할 수 있습니다

$string = trim($string, " ,");

하는 것으로. 그러므로 내 용에는 두 개의 문자가 정의되어 있습니다 : 공백 문자 ""와 쉼표 ",".

당신은 루프없이 단어를 활용 찾는 경우 :

$string = ucwords(trim($string, " ,"));

참고 : ucwords로() 함수는 단어 경계를 정의하는 공백을 찾습니다 "사과, 사과"가 작동하지 않습니다하지만, "사과, 사과"그래서 일 것이다 :

$string = ucwords(str_replace(array(","," "),array(", "," "),trim($string, " ,")));

최고의 솔루션입니다. (첫 번째 교체 배열의 두 번째 요소에 두 개의 공백이 있습니다.)

관련 문제