PHP의 배열에서 쉼표로 구분 된 목록을 어떻게 생성합니까?
foreach를 사용하여 배열의 항목을 반복하고 쉼표를 추가하는 방법을 선택하고 항상 마지막 쉼표를 제거해야합니다. 쉬운 PHP 방법이 있습니까?
$fruit = array('apple', 'banana', 'pear', 'grape');
내가 원한다
$result = "apple, banana, pear, grape"
이를 위해 내파 를 사용하고 싶습니다 .
즉 : $commaList = implode(', ', $fruit);
후행없이 쉼표를 추가하는 방법이 있습니다. 동시에 다른 조작을해야하는 경우이 작업을 수행하고 싶을 것입니다. 예를 들어 각 과일을 인용 한 다음 모두 쉼표로 구분할 수 있습니다.
$prefix = $fruitList = '';
foreach ($fruits as $fruit)
{
$fruitList .= $prefix . '"' . $fruit . '"';
$prefix = ', ';
}
또한 각 항목의 쉼표를 추가하는 "일반적인"방법 (이전에했던 것처럼 들림)을 수행하고 마지막 항목을 잘라 내야하는 경우 $list = rtrim($list, ', ')
. substr
이런 상황에서 많은 사람들이 주위를 비웃는 것을 보게 됩니다.
이것이 내가해온 방법입니다.
$arr = array(1,2,3,4,5,6,7,8,9);
$string = rtrim(implode(',', $arr), ',');
echo $string;
다수 :
1,2,3,4,5,6,7,8,9
라이브 데모 : http://ideone.com/EWK1XR
편집 : @joseantgv의 의견에 rtrim()
따라 위의 예에서 제거 할 수 있습니다. 즉 :
$string = implode(',', $arr);
and
결국 결과 :
$titleString = array('apple', 'banana', 'pear', 'grape');
$totalTitles = count($titleString);
if ($totalTitles>1) {
$titleString = implode(', ', array_slice($titleString, 0, $totalTitles-1)) . ' and ' . end($titleString);
} else {
$titleString = implode(', ', $titleString);
}
echo $titleString; // apple, banana, pear and grape
현재 반복이 배열의 마지막 값이 아닌지 확인하는 IF 문을 FOR 루프에 사용하는 것을 선호합니다. 없는 경우 쉼표를 추가하십시오.
$fruit = array("apple", "banana", "pear", "grape");
for($i = 0; $i < count($fruit); $i++){
echo "$fruit[$i]";
if($i < (count($fruit) -1)){
echo ", ";
}
}
Lloyd의 답변과 유사하지만 모든 크기 배열에서 작동합니다.
$missing = array();
$missing[] = 'name';
$missing[] = 'zipcode';
$missing[] = 'phone';
if( is_array($missing) && count($missing) > 0 )
{
$result = '';
$total = count($missing) - 1;
for($i = 0; $i <= $total; $i++)
{
if($i == $total && $total > 0)
$result .= "and ";
$result .= $missing[$i];
if($i < $total)
$result .= ", ";
}
echo 'You need to provide your '.$result.'.';
// Echos "You need to provide your name, zipcode, and phone."
}
특정 특정 인스턴스에서이를 PHP가 필요하지도 않습니다. (예를 들어 목록 항목은 일반 태그에 있음). 모든 요소에 쉼표를 추가 할 수 있습니다 마지막 하위 요소는 항상 추가 할 수 있습니다. 펼쳐서.
실제로 백본 앱에서 많은 것을 사용하여 임의의 코드 지방을 잘라냅니다.
.likers a:not(:last-child):after { content: ","; }
기본적으로 요소를보고 마지막 요소를 제외한 모든 항목을 대상으로하며 각 항목 뒤에 쉼표를 추가합니다. 경우에 해당하는 경우 스크립트를 전혀 사용하지 않아도되는 대체 방법입니다.
기능적 솔루션은 다음과 같습니다.
$fruit = array('apple', 'banana', 'pear', 'grape');
$sep = ',';
array_reduce(
$fruits,
function($fruitsStr, $fruit) use ($sep) {
return (('' == $fruitsStr) ? $fruit : $fruitsStr . $sep . $fruit);
},
''
);
$fruit = array('apple', 'banana', 'pear', 'grape');
$commasaprated = implode(',' , $fruit);
인용 된 답변을하면 할 수 있습니다.
$commaList = '"'.implode( '" , " ', $fruit). '"';
위의 내용은 과일이 null이 아니라고 가정합니다. 그러한 가정을하고 싶지 않다면 if-then-else 문이나 삼항 (? :) 연산자를 사용할 수 있습니다.
또 다른 방법은 다음과 같습니다.
$letters = array("a", "b", "c", "d", "e", "f", "g");
$result = substr(implode(", ", $letters), 0, -3);
의 출력은 $result
멋지게 형식이 지정된 쉼표로 구분 된 목록입니다.
a, b, c, d, e, f, g
$letters = array("a", "b", "c", "d", "e", "f", "g"); // this array can n no. of values
$result = substr(implode(", ", $letters), 0);
echo $result
출력-> a, b, c, d, e, f, g
'IT' 카테고리의 다른 글
Django에서 다른 설정으로 단위 테스트하는 방법은 무엇입니까? (0) | 2020.08.14 |
---|---|
.NET의 URL에서 페이지를 읽는 가장 쉬운 방법 (0) | 2020.08.14 |
C ++ 용 온라인 이름 demangler가 있습니까? (0) | 2020.08.14 |
Bash에서 각 파일과 디렉토리의 크기를 (재귀 적으로) 어느 정도 정렬해야합니까? (0) | 2020.08.14 |
Ref, Var, Agent, Atom의 Clojure 차이점 (예제 포함) (0) | 2020.08.14 |