쉼표로 구분된 문자열을 배열로 분할하시겠습니까?
문자열 입력을 콤마에서 배열로 분할해야 합니다.
콤마로 구분된 문자열을 평평한 색인 배열로 분해하는 방법이 있습니까?
입력:
9,admin@example.com,8
출력:
['9', 'admin@example', '8']
폭발 시도:
$myString = "9,admin@example.com,8";
$myArray = explode(',', $myString);
print_r($myArray);
출력:
Array
(
[0] => 9
[1] => admin@example.com
[2] => 8
)
$string = '9,admin@google.com,8';
$array = explode(',', $string);
보다 복잡한 상황에서는 를 사용해야 할 수 있습니다.
만약 그 문자열이 csv 파일에서 온 것이라면, 저는 (또는 PHP V5.3을 가지고 있는 경우)를 사용합니다.그러면 인용된 값을 올바르게 구문 분석할 수 있습니다.CSV가 아닌 경우 를 선택하는 것이 가장 좋습니다.
부품에 쉼표를 넣으려면 어떻게 해야 합니까?그럼, 인용해보죠.그리고 인용문은요?그럼, 두 배로 해즉, 다음과 같습니다.
part1,"part2,with a comma and a quote "" in it",part3
PHP는 CSV 파일의 행인 것처럼 문자열을 구문 분석할 수 있는 https://php.net/str_getcsv 함수를 제공합니다.이 함수는 위의 행과 함께 사용할 수 있습니다.explode
:
print_r(str_getcsv('part1,"part2,with a comma and a quote "" in it",part3'));
Array
(
[0] => part1
[1] => part2,with a comma and a quote " in it
[2] => part3
)
explode
에는, 실생활에서의 사용에 있어서 몇개의 큰 문제가 있습니다.
count(explode(',', null)); // 1 !!
explode(',', null); // [""] not an empty array, but an array with one empty string!
explode(',', ""); // [""]
explode(',', "1,"); // ["1",""] ending commas are also unsupported, kinda like IE8
이것이 내가 preg_frecision을 선호하는 이유다.
preg_split('@,@', $string, NULL, PREG_SPLIT_NO_EMPTY)
전체 보일러 플레이트:
/** @brief wrapper for explode
* @param string|int|array $val string will explode. '' return []. int return string in array (1 returns ['1']). array return itself. for other types - see $as_is
* @param bool $as_is false (default): bool/null return []. true: bool/null return itself.
* @param string $delimiter default ','
* @return array|mixed
*/
public static function explode($val, $as_is = false, $delimiter = ',')
{
// using preg_split (instead of explode) because it is the best way to handle ending comma and avoid empty string converted to ['']
return (is_string($val) || is_int($val)) ?
preg_split('@' . preg_quote($delimiter, '@') . '@', $val, NULL, PREG_SPLIT_NO_EMPTY)
:
($as_is ? $val : (is_array($val) ? $val : []));
}
지정된 딜리미터를 사용하여 php의 문자열을 분할하려면 plaste() 또는 preg_split() 함수를 사용합니다.
// Use preg_split() function
$string = "123,456,78,000";
$str_arr = preg_split ("/\,/", $string);
print_r($str_arr);
// use of explode
$string = "123,46,78,000";
$str_arr = explode (",", $string);
print_r($str_arr);
for-를 사용하여 쉼표로 구분된 문자열을 목록 항목으로 변환하려는 사용자가 있으면 도움이 됩니다.이 코드는 블레이드 템플릿용입니다.
@php
$data = $post->tags;
$sep_tag= explode(',', $data);
@endphp
@foreach ($sep_tag as $tag)
<li class="collection-item">{{ $tag}}</li>
@endforeach
//Re-usable function
function stringToArray($stringSeperatedCommas)
{
return collect(explode(',', $stringSeperatedCommas))->map(function ($string) {
return trim($string) != null ? trim($string) : null;
})->filter(function ($string) {
return trim($string) != null;
});
}
//Usage
$array = stringToArray('abcd, , dsdsd, dsds');
print($array);
//Result
{ "abcd", "dsdsd", "dsds" }
언급URL : https://stackoverflow.com/questions/1125730/split-a-comma-delimited-string-into-an-array
'source' 카테고리의 다른 글
python은 파일에 얼마나 자주 플러시됩니까? (0) | 2022.09.12 |
---|---|
Java에서 속성 파일 읽기 (0) | 2022.09.12 |
배열의 indexOf 함수와 findIndex 함수의 차이 (0) | 2022.09.11 |
쿼리를 통해 MySQL에서 데이터베이스 구조를 가져오는 방법 (0) | 2022.09.11 |
도커에서 마리애드브에 원격접속하는 방법은? (0) | 2022.09.11 |