【发布时间】:2015-07-24 04:21:53
【问题描述】:
我有一个字符串:
$var = "[Item 1],[Item 2],[Item, 3]";
当我使用爆炸时:
$var = explode(",", $var);
这也会分解方括号内的逗号。
我想退货:
[Item 1]
[Item 2]
[Item, 3]
运行我正在使用的 foreach () {} 语句。有什么想法吗?
【问题讨论】:
我有一个字符串:
$var = "[Item 1],[Item 2],[Item, 3]";
当我使用爆炸时:
$var = explode(",", $var);
这也会分解方括号内的逗号。
我想退货:
[Item 1]
[Item 2]
[Item, 3]
运行我正在使用的 foreach () {} 语句。有什么想法吗?
【问题讨论】:
$var = "[Item 1],[Item 2],[Item, 3]";
$var = explode("],[", $var);
print_r($var);
--doh 忘记了分隔符丢失了,所以将那些 [] 放回原处是一个粗略的选择:
<?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);
切换到正则表达式拆分可能会更好,我会在几秒钟内写出来
最后的性感回答:
<?php
$var = "[Item 1],[Item 2],[Item, 3]";
$var = preg_split('/(\B,\B)/', $var);
echo '<pre>';
print_r($var);
【讨论】:
它不会按照你的意愿工作。但是可以用
$var = "[Item 1],[Item 2],[Item, 3]";
$varArr = explode("],", $var);
$newArr= array();
foreach($varArr as $key=>$val)
$newArr[$key] = $val . "]";
echo "<pre>";
print_r($newArr);
echo "</pre>";
【讨论】:
使用正则表达式提取这些信息怎么样?
$var = "[Item 1],[Item 2],[Item, 3]";
preg_match_all("(\[.+?\])", $var, $result);
print_r($result[0]);
【讨论】: