PHP-将字符串拆分为数字键数组

PHP-将字符串拆分为数字键数组,php,string-split,Php,String Split,我想把PHP中的字符串分为“名称”部分(字符串)和“键”部分(整数数组) 输入示例: $input = "Sum(1, 5, 7)"; 期望输出: $name = "Sum"; $keys = [1, 5, 7]; 我一直在研究explode、str_split和preg_split,我确信有很多可能的实现。最优雅的解决方案是什么 $input = "Sum(1, 5, 7)"; preg_match_all('#(\w+)\((.*?)\)#', $input, $m); pri

我想把PHP中的字符串分为“名称”部分(字符串)和“键”部分(整数数组)

输入示例:

 $input = "Sum(1, 5, 7)";
期望输出:

 $name = "Sum";
 $keys = [1, 5, 7];
我一直在研究explode、str_split和preg_split,我确信有很多可能的实现。最优雅的解决方案是什么

$input = "Sum(1, 5, 7)";

preg_match_all('#(\w+)\((.*?)\)#', $input, $m);

print_r($m);
示例

请尝试以下方法:

$input = "Sum(1, 5, 7)";

$split1=explode('(',$input);

$name=$split1[0];
echo $name;
$newk=rtrim($split1[1],')');
echo '<br>';
$keys=explode(',',$newk);
print_r($keys)
$input=“总和(1,5,7)”;
$split1=分解('(',$input);
$name=$split1[0];
echo$name;
$newk=rtrim($split1[1],');
回声“
”; $keys=分解(“,”,$newk); 打印(按键)

Euh,Sum(1,Sum(1,5,7),7)怎么样?预期的输出是什么?是否总是以“word”“括号”“逗号分隔的数字”“括号”的格式?严峻的,伟大的问题。是的,我希望它总是“单词”“括号”“逗号分隔的数字”“括号”。HamZa的示例将是无效(非法)输入。字符串在配置文件中,因此我可以控制意外输入。@MMacdonald是输入
Sum(1,5,7)
,或者可以有几个“部分”,如
Sum(1,5,7)、Div(10,5)、Mul(3,4)
?@HamZa-独占Sum(1,5,7)。。。单词,方括号,逗号分隔的数字,方括号。没有其他变体。这似乎是一个很好的开始,但实际上会将“1、5、7”作为字符串返回,而不是作为数组返回。从那里开始,只需将字符串分解为数组。请将代码也放在答案中,这样答案就不纯粹是一个链接。