Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- JavaScript
- Excel
- includes()
- implode()
- error
- 오류
- jQuery
- formula
- srtpos()
- 지직거림
- 1064
- myshortcut
- SQL
- 배열
- 노션
- 특수문자 포함여부
- strpos()
- php
- explode()
- 문자열 포함여부
- primary_key
- 정규식
- 서버부하
- 동작안함
- 이걸 그렇게 쓸 줄은 몰랐지
- 일부 문자열 포함여부
- ES6
- getimagesize()
- MySQL
- 중간에추가
Archives
- Today
- Total
코딩짜는 일상
[PHP] 배열을 문자열로 나열(문자열 끝에서 n번째 버리기) - substr(), mb_substr() 본문
반응형
서론
배열에 든 변수를 쿼리에 쓰기 위해 하나의 문자열로 가공하거나
배열에 든 값을 ,
로 구분하여 문장으로 나열하는 경우가 의외로 있습니다.
하지만 맨날 햇갈려서 다시 검색하고를 반복하므로... 포스팅을 작성합니당~
배열을 문자열로 나열(문자열 끝에서 n번째 버리기)
배열을 문자열로 나열하려면 반복문으로 배열에 든 값을 문자열 변수에 추가해주고
끝에 ,
를 추가해 구분해주면 됩니다.
단, 맨 마지막의 ,
는 없어야 하니까 이때 substr()
또는 mb_substr()
을 써줍니다.
$_string = '';
foreach($array as $key => $val){
$_string .= $val.", ";
}
$string = substr($_string, 0, -2);
$query = "SELECT * FROM testTable WHERE `변수` IN (".$string.")";
// 이런식으로 배열에 든 변수를 쿼리 조건문으로 만들때 씁니다!
이처럼 일반 배열이라면 substr()
만 써도 문제가 없습니다.
하지만 mysqli_fetch_assoc
또는 mysqli_fetch_array
같이 DB를 조회할 때
가져오는 배열에 한글값이 있으면 인코딩 문제로 문자가 깨지는 경우가 빈번합니다.
이때는 mb_substr()
을 써줍니다.
$query = "SELECT * FROM testTable";
$result = mysqli_query($db_connect, $query);
$array = array();
while($row = mysqli_fetch_assoc($result)){
$array[] = $row;
}
$_string = '';
foreach($array as $key => $val){
$_string .= $val.", ";
}
$string = mb_substr($_string, 0, -2, "UTF-8");
// 이런식으로 조회한 값(한글)을 문자열로 나열할 때 씁니다!
반응형
'IT > PHP' 카테고리의 다른 글
[PHP] 문자열에 특수문자 또는 일부 문자열이 포함되어 있는지 확인 - strpos(), preg_match() (0) | 2023.09.13 |
---|---|
[PHP] 배열 중간에 추가하는 2가지 방법 - array_slice(), array_merge(), foreach() (0) | 2023.07.06 |
[PHP] mysql_fetch_array와 mysql_fetch_assoc 차이 - print_r 출력 차이 (0) | 2022.05.06 |
[PHP] 문자열, 배열 주고 받기- addslashes(), urlencode(), serialize() (0) | 2022.04.22 |
[PHP] 다중배열에 json_encode(), json_decode()하기 - stdClass Object 값 불러오기 (0) | 2022.04.15 |