gpt4 book ai didi

php - 如何将字符串转换为数组字符

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

第一行代码转换为第二行代码。我可以使用填充方法,但我想从最短路径获取解决方案并快速转换。我将在 sql select 部分使用代码字段

 $it = "(a(am,bam),b(dam,cam))"; $to = "a.am, a.bam, b.dam, b.cam";

最佳答案

试试下面的代码:

$it = "(a(am,bam),b(dam,cam))";

function iDelimiter( $str ) {

$count = 0;
$str = str_split( $str );

foreach( $str as &$value ) {

if( $value == "(" ) {
$count++;
} elseif( $value == ")" ) {
$count--;
}

if( $value == "," && ! $count ) {
$value = "|";
}

}

return explode( "|", implode( $str ) );

}

function iParser( $str, $_prefix = "" ) {

preg_match( "/^((?!(\(|\))).)*\((.*)\)$/", $str, $m );

if( count( $m ) < 4 ) {
return ( strlen( $_prefix ) ? $_prefix . "." : '' ) . $str;
}

$prefix = ( strlen( $_prefix ) ? $_prefix . "." : '' ) . $m[1];

$str = $m[3];

if( strpos( $str, "(" ) === false ) {

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

$pad = preg_filter( '/^/', strlen( $prefix ) ? $prefix . '.' : '', $return );

return implode( $pad, "," );
} else {

$str = iDelimiter( $str );

$return = array_map( 'iParser', $str, array_pad( array(), count( $str ), $prefix ) );

return implode( $return, ", " );
}

}

print_r( iParser( $it ) );

它解析每个深度的括号。只需将您的字符串传递给 iParser 函数即可。

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

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