php는 따옴표로 (101)를 삽입한다.
단순 배열 삽입
이렇게 생겼을 거야
$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'
더 좋은 방법이 있을까요? 제가 뭔가 놓치고 있는 건가요? inclode에 대한 선택적 매개 변수가 있어야 한다고 생각합니다.
$array = array('lastname', 'email', 'phone');
echo "'" . implode("','", $array) . "'";
다음을 사용할 수 있습니다.
function add_quotes($str) {
return sprintf("'%s'", $str);
}
$csv = implode(',', array_map('add_quotes', $array));
또한 파일에 쓰려는 경우에도 있습니다.
$ids = sprintf("'%s'", implode("','", $ids ) );
아니, 네가 하는 방식은 괜찮아. implode()
는 1~2개의 파라미터만 받습니다(배열을 지정하는 경우 빈 문자열로 조각을 결합합니다).
이 방법이 더 빠를지는 모르겠지만, 사용의 방법으로 코드 행을 보존할 수 있습니다.
부터
$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);
데모: http://codepad.org/O2kB4fRo
$id = array(2222,3333,4444,5555,6666);
$ids = "'".implode("','",$id)."'";
또는
$ids = sprintf("'%s'", implode("','", $id ) );
또는 다음과 같은 함수를 만들 수도 있습니다.
function implode_with_quotes(array $data)
{
return sprintf("'%s'", implode("', '", $data));
}
다음 코드를 사용해 보십시오.
$data = 'ABC,DEF,GHI';
$str = "'".str_replace(',',"','",$data)."'";
echo $str;
fopen/fputcsv 서브시스템을 회피하려면 관련 어레이에서 이스케이프된 CSV 문자열을 작성하는 스니펫을 다음에 나타냅니다.
$output = '';
foreach ($list as $row) {
$output .= '"' . implode('", "', array_values($row)) . '"' . "\r\n";
}
아니면 물건 목록에서...
foreach ($list as $obj) {
$output .= '"' . implode('", "', array_values((array) $obj)) . '"' . "\r\n";
}
그런 다음 원하는 대로 문자열을 출력할 수 있습니다.
어레이가 필요한 용도에 따라 다음 옵션을 선택할 수 있습니다.
$array = array('lastname', 'email', 'phone');
echo json_encode($array);
이렇게 하면 문자열 주위에 '[]'와 ']'가 표시됩니다.이러한 문자열은 원하는지 원하지 않을 수 있습니다.
데이터 유출을 잊지 마세요!fputcsv 함수를 사용하지 않고 CSV 파일에 데이터를 저장하거나 SQL 쿼리에 데이터를 저장하는 경우 다음 코드를 사용합니다.
$comma_separated = "'" . implode("','", array_map('addslashes', $array)) . "'";
입력 배열에 작은 따옴표 또는 백슬래시 문자가 포함되어 있는 경우 이 코드를 사용하면 SQL 주입이나 데이터 조각화가 방지됩니다.
다른 솔루션은 다음과 같이 innode + preg_replace를 사용하여 구현됩니다.
$a = ['A', 'B', 'C'];
implode(',', preg_replace('/^(.*)$/', '"$1"', $a)); // "A","B","C"
$b = [];
implode(',', preg_replace('/^(.*)$/', '"$1"', $b)); // empty string
이렇게 하면 어레이가 비어 있는지 확인할 필요가 없어집니다.
이 방법으로도 할 수 있다
<?php
$csv= '\'' . join(array('lastname', 'email', 'phone'),'\',').'\'';
echo $csv;
?>
이게 네가 하려는 일이라고 생각해
$array = array('lastname', 'email', 'phone');
echo "'" . implode("','", explode(',', $array)) . "'";
언급URL : https://stackoverflow.com/questions/6102398/php-implode-101-with-quotes
'source' 카테고리의 다른 글
Guice의 인젝터에서 주석이 달린 인스턴스를 검색하려면 어떻게 해야 합니까? (0) | 2022.11.28 |
---|---|
문자열에 처음 n자만 유지하시겠습니까? (0) | 2022.11.28 |
휴지 상태 오류: save()를 호출하기 전에 이 클래스의 ID를 수동으로 할당해야 합니다. (0) | 2022.11.28 |
Larabel 5.1에서 데이터베이스 내의 테이블리스트를 가져오는 방법 (0) | 2022.11.28 |
단일 페이지 응용 프로그램: 장점과 단점 (0) | 2022.11.28 |