多次爆炸一个字符串,然后进行解码

时间:2014-08-23 07:43:26

标签: php explode implode

我一直在尝试将字符串爆炸两次然后将其爆炸。 这就是我两次爆炸的意思。 所以我有一个字符串

:0,0,1,0,0:0,0,0,0,0:

我想编辑第三个零并将其更改为一个。 我怎么做? 我试过爆炸:然后爆炸,,然后Idk如何破坏它。

我尝试过这段代码,但我不能破坏:

$exploding = ':0,0,0,1,0,0:0,0,0,0,0:';
        $explode = explode(':', $exploding);
        $explodes = explode(',', $explode[1]);
        $explodes[$part] = $type;
        $explodes = implode(',', $explodes);

4 个答案:

答案 0 :(得分:0)

// Explode on :
$array = explode(':', $string);
// Now explode each on ,
foreach ($array as &$substring) {
    $substring = explode(',', $substring);
}
// Change third 0 to 1
$array[1][3] = '1';
// Now implode on ,
foreach ($array as &$substring) {
    $substring = implode(',', $substring);
}
// Now implode on :
$new_string = implode(':', $array);

foreach循环中的引用变量允许您更新数组元素。

DEMO

一个更简单的版本就像你的尝试一样:

$exploding = ':0,0,0,1,0,0:0,0,0,0,0:';
$explode = explode(':', $exploding);
$explodes = explode(',', $explode[1]);
$explodes[$part] = $type;
$explode[1] = implode(',', $explodes);
$exploding = implode(':', $explode);

DEMO

答案 1 :(得分:0)

在此示例中,

$ part和$ type未定义,但此代码应将此特定字符串的第三个0更改为1:

$exploding = ':0,0,0,1,0,0:0,0,0,0,0:';
    $explode = explode(':', $exploding);
    $explodes = explode(',', $explode[1]);
    $explodes[2] = '1';
    $explodes = implode(',', $explodes);

这看起来很奇怪,所以我不确定你是不是只想弄清楚爆炸是如何工作的,或者你是否想要一些能用于不同字符串的东西。

检查我的其他解决方案,以找到解决这些问题的更好方法。

答案 2 :(得分:0)

我添加了一个专门回答问题的答案,但是我可以建议一种更易于解决更复杂问题的不同方法吗? PHP允许您以字符串形式访问字符串,索引是字符串中字符从零开始的位置。

<强>代码:

$string = ':sd0,2[wsdsjds0sdfs0ksdjse00df0';
echo $string.'<br />';

$zeroCounter = 0;

for ($i=0;$i<strlen($string);$i++) {


    if ($string[$i] === '0') {

        $zeroCounter += 1;

        if ($zeroCounter === 3) {
            $string[$i] = '1';
            break;
        }

    }

}

echo $string;

<强>输出:

:sd0,2[wsdsjds0sdfs**0**ksdjse00df0
:sd0,2[wsdsjds0sdfs**1**ksdjse00df0

如果您有任何疑问,请与我联系!

答案 3 :(得分:0)

您的代码正确但不完整,这对我有用:

$part = 3;
$type = 1;
$exploding = ':0,0,1,0,0,0:0,0,0,0,0:';
$explode = explode(':', $exploding);
$explode[1] = explode(',', $explode[1]);
$explode[1][$part] = $type;
$explode[1] = implode(',', $explode[1]);
$explode = implode(':', $explode);
print $exploding;
print "<br/>";
print $explode;

输出:

:0,0,1,0,0,0:0,0,0,0,0:
:0,0,1,1,0,0:0,0,0,0,0: