PHP의 새로운 기능PHP에서 문자열의 마지막 쉼표 제거 방법
문자열의 마지막 쉼표를 제거하고 싶습니다. 어떻게해야합니까? 어떤 도움을 크게 사전에 감사 감사하겠습니다
<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
foreach($cap as $new){
echo ucfirst($new).",";
}
?>
: 다음은 내 코드입니다.
PHP의 새로운 기능PHP에서 문자열의 마지막 쉼표 제거 방법
문자열의 마지막 쉼표를 제거하고 싶습니다. 어떻게해야합니까? 어떤 도움을 크게 사전에 감사 감사하겠습니다
<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
foreach($cap as $new){
echo ucfirst($new).",";
}
?>
: 다음은 내 코드입니다.
<?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++;
}
?>
<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
$cap2 = array();
foreach($cap as $new){
$cap2[] = ucfirst($new);
}
echo implode(",",$cap2)
?>
당신과 같이 루프없이이 작업을 수행 할 수 있습니다
$string = 'test, test, test';
$pos = strrpos($string, ',');
$string[$pos] = '';
echo $string;
간단한 정규 표현식 할 것 :
preg_replace('/,([^,])$/','\1',$str);
톰 월 터 답으로 이동, 가장 빠른 지금까지. –
$sub ="economic,maths,science";
var_dump(implode(',', array_map('ucfirst', explode(",", $sub))));
이것은 하나의 단어 경계와 함께 작동 쉼표가 아닌
preg_replace('~\b(\w+)\b~e', 'ucfirst("\\1")', "economic,maths,science");
e 플래그가있는 정규 표현식은 매우 느리고 '내파'로 처리해야하는 상황에서는 정규 표현식을 사용하고 있습니다. – sg3s
전자 플래그 성능에 대한 링크가 있거나 범용 정규식보다 특정 코드 조각을 선호하는 이유가 있습니까? –
성능 문제에 대한 기사를 찾을 수 없지만 문자열에 수행 된 추가/제거와 관련이 있습니다. 그러나 그때조차 [걱정할 다른 문제가있다] (http://stackoverflow.com/questions/3115559/exploitable-php-functions). 하지만 여기에서 주된 문제는 아니며 정규 표현식 엔진을 시작하고 쉼표 사이의 모든 것이 쉼표 사이에 있는지 확인하지는 않습니다 (다른 경계가 있음).이 문제를 더 오래 적용 할 때 다른 문제에 노출됩니다. , 더 복잡한 문자열. – sg3s
간단한 트림은 충분하다 : 트림() 함수의 두 번째 매개 변수는 당신이 당신의 문자열뿐 아니라 공백에서 정의 된 문자를 트리밍 할 수 있습니다
$string = trim($string, " ,");
하는 것으로. 그러므로 내 용에는 두 개의 문자가 정의되어 있습니다 : 공백 문자 ""와 쉼표 ",".
당신은 루프없이 단어를 활용 찾는 경우 :
$string = ucwords(trim($string, " ,"));
참고 : ucwords로() 함수는 단어 경계를 정의하는 공백을 찾습니다 "사과, 사과"가 작동하지 않습니다하지만, "사과, 사과"그래서 일 것이다 :
$string = ucwords(str_replace(array(","," "),array(", "," "),trim($string, " ,")));
최고의 솔루션입니다. (첫 번째 교체 배열의 두 번째 요소에 두 개의 공백이 있습니다.)
thnx 모든 노력을 다해 주지만 감사 하긴하지만 충분한 평판이 없기 때문에 투표를 할 수 없습니다. – Sunny