我需要在逗号处将我的字符串输入分割成一个数组。

是否有一种方法将逗号分隔的字符串分解为一个平坦的索引数组?

输入:

9,admin@example.com,8

输出:

['9', 'admin@example', '8']  

当前回答

$string = '9,admin@google.com,8';
$array = explode(',', $string);

对于更复杂的情况,您可能需要使用preg_split。

其他回答

如果该字符串来自csv文件,我将使用fgetcsv()(如果使用PHP V5.3,则使用str_getcsv())。这将允许您正确地解析引用的值。如果它不是csv,那么爆炸()应该是最好的选择。

如果有人想用for-each将逗号分隔的字符串转换为列表项,那么它将帮助你… 此代码是刀片模板

@php
$data = $post->tags;
$sep_tag= explode(',', $data);
@endphp

@foreach ($sep_tag as $tag)
 <li class="collection-item">{{ $tag}}</li>
 @endforeach 
$string = '9,admin@google.com,8';
$array = explode(',', $string);

对于更复杂的情况,您可能需要使用preg_split。

使用explosion()或preg_split()函数使用指定的分隔符拆分php中的字符串

// 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); 

如果你想让你的部分包含逗号呢?好吧,引用它们。然后引号呢?把它们叠起来。换句话说:

第一部分,“part2”,用逗号加引号“in it”,第三部分

PHP提供了https://php.net/str_getcsv函数来解析字符串,就像它是CSV文件中的一行一样,可以与上面的行一起使用,而不是爆炸:

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
)