간단한 배열 파열
이렇게 보일거야
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
그리고 그것은 이것을 반환합니다
lastname,email,phone
좋아, 그래서 내가 대신 할 수도
$array = array('lastname', 'email', 'phone');
$comma_separated = implode("','", $array);
$comma_separated = "'".$comma_separated."'";
이제 내가 원하는 멋진 예쁜 csv 문자열이 있습니다.
'lastname','email','phone'
이 작업을 수행하는 더 좋은 방법이 있습니까, implode에 대한 선택적 매개 변수가 있어야하는 것처럼 느껴집니다.
답변
아니, 당신이하는 방식은 괜찮습니다. implode()
1-2 개의 매개 변수 만 사용합니다 (배열 만 제공하면 빈 문자열로 조각을 결합합니다).
답변
$array = array('lastname', 'email', 'phone');
echo "'" . implode("','", $array) . "'";
답변
다음을 사용할 수 있습니다 array_map()
.
function add_quotes($str) {
return sprintf("'%s'", $str);
}
$csv = implode(',', array_map('add_quotes', $array));
또한 fputcsv
파일에 쓰려 는 경우가 있습니다.
답변
$ids = sprintf("'%s'", implode("','", $ids ) );
답변
더 빠른지 모르겠지만 방법으로 코드 줄을 저장할 수 있습니다.
에서
$array = array('lastname', 'email', 'phone');
$comma_separated = implode("','", $array);
$comma_separated = "'".$comma_separated."'";
에:
$array = array('lastname', 'email', 'phone');
$comma_separated = "'".implode("','", $array)."'";
답변
루프를 사용하려면 다음을 수행 할 수도 있습니다.
$array = array('lastname', 'email', 'phone');
foreach($array as &$value){
$value = "'$value'";
}
$comma_separated = implode(",", $array);
답변
또는 다음과 같은 함수를 만들 수 있습니다.
function implode_with_quotes(array $data)
{
return sprintf("'%s'", implode("', '", $data));
}