gpt4 book ai didi

php - 在不同的字符出现处将字符串转换为数组

转载 作者:可可西里 更新时间:2023-11-01 00:40:15 25 4
gpt4 key购买 nike

考虑我有这个字符串 'aaaabbbaaaaaabbbb' 我想将其转换为数组以便得到以下结果

$array = [
'aaaa',
'bbb',
'aaaaaa',
'bbbb'
]

如何在 PHP 中解决这个问题?

最佳答案

PHP code demo

正则表达式:(.)\1{1,}

(.):匹配捕获单个字符。

\1:这将包含第一个匹配项

\1{1,}:使用匹配字符一次或多次。

<?php
ini_set("display_errors", 1);
$string="aaaabbbaaaaaabbbb";
preg_match_all('/(.)\1{1,}/', $string,$matches);
print_r($matches);

输出:

Array
(
[0] => Array
(
[0] => aaaa
[1] => bbb
[2] => aaaaaa
[3] => bbbb
)

[1] => Array
(
[0] => a
[1] => b
[2] => a
[3] => b
)

)

或者:

PHP code demo

<?php
$string="aaaabbbaaaaaabbbb";
$array=str_split($string);
$start=0;
$end= strlen($string);
$indexValue=$array[0];
$result=array();
$resultantArray=array();
while($start!=$end)
{
if($indexValue==$array[$start])
{
$result[]=$array[$start];
}
else
{
$resultantArray[]=implode("", $result);
$result=array();

$result[]=$indexValue=$array[$start];
}
$start++;
}
$resultantArray[]=implode("", $result);
print_r($resultantArray);

输出:

Array
(
[0] => aaaa
[1] => bbb
[2] => aaaaaa
[3] => bbbb
)

关于php - 在不同的字符出现处将字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42991284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com