首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php如何拆分包含特殊字符的字符串

Php如何拆分包含特殊字符的字符串
EN

Stack Overflow用户
提问于 2014-12-12 10:59:48
回答 5查看 3.7K关注 0票数 2

你好,我有一个字符串

代码语言:javascript
复制
$str = "[10-1],[20-2],[30-3],";

我想把两个数组分割成-

代码语言:javascript
复制
Array1
(
   [0] => 10
   [1] => 20
   [2] => 30
)

Array2
(
   [0] => 1
   [1] => 2
   [2] => 3
)

怎么做呢?而且,我的变量$str是根据值而变化的。

谢谢..

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-12-12 11:11:40

使用regex拆分它:

代码语言:javascript
复制
$str = "[10-1],[20-2],[30-3],";

$matches = array();
preg_match_all('/\[(\d+)-(\d+)\],/', $str, $matches);

如果你unset($matches[0]);,剩下的正是你想要的。

票数 6
EN

Stack Overflow用户

发布于 2014-12-12 11:08:22

我会用explode()。几乎可以肯定有一个更好的方法,但它从来没有让我失望。

代码语言:javascript
复制
$array1 = [];
$array2 = [];
$str = "[10-1],[20-2],[30-3]";
$split = explode ('[', $str);
foreach ($split as $item) {
    $array = explode (']', $item);
    $array = explode('-', $array[0]);
    $array1[] = $array[1];
    $array2[] = $array[0];
}
票数 0
EN

Stack Overflow用户

发布于 2014-12-12 11:09:23

这个对你有用吗?

代码语言:javascript
复制
$str = "[10-1],[20-2],[30-3],";

$str = str_replace(array("[","]"),"",$str);

$parts = explode(",",$str);

$arr1 = [];
$arr2 = [];
foreach($parts as $part){
    if($part){
        $arr_parts = explode("-",$part);
        $arr1[] = $arr_parts[0];
        $arr2[] = $arr_parts[1];
    }
}

echo "<pre>";
var_dump($arr1,$arr2);

产出如下:

代码语言:javascript
复制
array(3) {
    [0]=>
    string(2) "10"
    [1]=>
    string(2) "20"
    [2]=>
    string(2) "30"
}
array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27442176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档