爆炸数组逗号但不在方括号内

Ian*_*ser 2 php arrays loops

我有一个字符串:

$var = "[Item 1],[Item 2],[Item, 3]";
Run Code Online (Sandbox Code Playgroud)

当我使用爆炸时:

$var = explode(",", $var);
Run Code Online (Sandbox Code Playgroud)

这也会爆出方括号内的逗号.

我想回复:

[Item 1]
[Item 2]
[Item, 3]
Run Code Online (Sandbox Code Playgroud)

运行我正在使用的foreach(){}语句.有任何想法吗?

小智 6

$var = "[Item 1],[Item 2],[Item, 3]";

$var = explode("],[", $var);

print_r($var);
Run Code Online (Sandbox Code Playgroud)

- 忘了分隔符丢失所以这是一个粗略的选择,把那些[]放回去:

<?php
$var = "[Item 1],[Item 2],[Item, 3]";

$var = explode("],[", $var);

foreach ($var as $v){

  if(substr($v,0,1)!='['){
   $v='['.$v; 
  }

    if(substr($v,-1)!=']'){
$v=$v.']'; 
  }

    $out[]=$v; 



}
echo '<pre>';
print_r($out);
Run Code Online (Sandbox Code Playgroud)

可能会更好地切换到正则表达式拆分,我会在一秒钟内写出来

最佳性感答案:

<?php
$var = "[Item 1],[Item 2],[Item, 3]";


$var = preg_split('/(\B,\B)/', $var);


echo '<pre>';
print_r($var);
Run Code Online (Sandbox Code Playgroud)

演示:http://codepad.viper-7.com/6qgSzB